有人可以指导我使用一个命令来测量 LINUX 上的 TLB 未命中吗?是否可以将轻微的页面错误视为 TLB 未命中?
问问题
6361 次
2 回答
13
您可以使用它perf
来执行此操作。前提是你的 CPU 支持。
用于perf list
了解可用的计数器。当我拿到这个列表并为 TLB(在我的 Sandy Bridge 机器上)进行 grep 时,我得到了:
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
来看结果。
于 2012-02-19T17:44:55.643 回答
7
要查看整个系统的此信息,您可以使用以下行。这将记录计数器 1 分钟(60 秒)。
perf stat -e dTLB-loads,dTLB-load-misses,iTLB-loads,iTLB-load-misses sleep 60
如果未命中率高于 1%,您应该考虑使用大页面。
于 2016-08-18T18:59:30.450 回答