测量LINUX上TLB未命中的命令



有人能告诉我一个命令来测量LINUX上的TLB未命中吗?可以将小的页面错误视为TLB未命中吗?

您可以使用perf来执行此操作。只要你的CPU支持它。

使用perf list了解可用计数器。当我拿着这个列表(在我的Sandy Bridge机器上)申请TLB时,我得到了:

rob@tartarus:~$ perf list | grep -i tlb
  dTLB-loads                                         [Hardware cache event]
  dTLB-load-misses                                   [Hardware cache event]
  dTLB-stores                                        [Hardware cache event]
  dTLB-store-misses                                  [Hardware cache event]
  dTLB-prefetches                                    [Hardware cache event]
  dTLB-prefetch-misses                               [Hardware cache event]
  iTLB-loads                                         [Hardware cache event]
  iTLB-load-misses                                   [Hardware cache event]

然后,您可以将此特定计数器与:perf record -e <event0>,<event1>,.. 一起使用

然后使用perf report查看结果。

要查看整个系统的这些信息,可以使用以下行。这将记录计数器1分钟(60秒)。

perf stat -e dTLB-loads,dTLB-load-misses,iTLB-loads,iTLB-load-misses sleep 60

如果未命中率高于1%,您应该考虑使用大页面

最新更新