首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从perf统计数据中解释LLC-Load-缺失

如何从perf统计数据中解释LLC-Load-缺失
EN

Stack Overflow用户
提问于 2018-09-02 16:35:31
回答 1查看 6.6K关注 0票数 0

我在here上发布了一个类似的问题

在找出几个问题之后,我降低了紧张的情绪。

我会描述我的情景。

我的内核引导参数如下所示:

nmi_watchdog=0 intel_idle.max_cstate=0 processr.max_cstate=0 nohz_full=7-11 isolcpus=7-11 mce=off rcu_nocbs=7-11 nosoftlockup cpuidle.off=1 powersave=off nonmi_ipi nnwatchdog

我有一个内核模块,它负责在给定的时间间隔内发送一些数据包(这里我每1ms发送一次)。

  • 我把包生成器固定在CPU 9上
  • 我将一个内核模块(或k线程)固定在CPU 8上。
  • 我已经将rx队列的IRQ关联设置为CPU 10。

因此,我执行了以下命令来获取perf统计信息

sudo ./perf stat -a -d -I 1000 --cpu=8 taskset -c 9 ./test.sh

下面,我发布了我得到的输出的摘录。通过上面的命令,我试图分析我的CPU Core 8的事件。

因此,以这种方式,这些组件不应相互干扰。

代码语言:javascript
复制
     5.002780500        1000.296809      cpu-clock (msec)          #    1.000 CPUs utilized
     5.002780500                  0      context-switches          #    0.000 K/sec
     5.002780500                  0      cpu-migrations            #    0.000 K/sec
     5.002780500                  0      page-faults               #    0.000 K/sec
     5.002780500             88,531      cycles                    #    0.000 GHz
     5.002780500             29,738      instructions              #    0.33  insn per cycle
     5.002780500              6,639      branches                  #    0.007 M/sec
     5.002780500                118      branch-misses             #    1.72% of all branches
     5.002780500              7,677      L1-dcache-loads           #    0.008 M/sec
     5.002780500                318      L1-dcache-load-misses     #    4.04% of all L1-dcache hits
     5.002780500                196      LLC-loads                 #    0.196 K/sec
     5.002780500                169      LLC-load-misses           #   84.08% of all LL-cache hits
Round 0
     6.330091222        1327.302728      cpu-clock (msec)          #    1.327 CPUs utilized
     6.330091222                  1      context-switches          #    0.001 K/sec
     6.330091222                  1      cpu-migrations            #    0.001 K/sec
     6.330091222                  0      page-faults               #    0.000 K/sec
     6.330091222      2,401,268,484      cycles                    #    2.276 GHz
     6.330091222      1,700,438,285      instructions              #    4.25  insn per cycle
     6.330091222        400,075,413      branches                  #  379.216 M/sec
     6.330091222              9,587      branch-misses             #    0.01% of all branches
     6.330091222        300,135,708      L1-dcache-loads           #  284.487 M/sec
     6.330091222             12,520      L1-dcache-load-misses     #    0.03% of all L1-dcache hits
     6.330091222              6,865      LLC-loads                 #    0.007 M/sec
     6.330091222              5,177      LLC-load-misses           #  394.69% of all LL-cache hits
Round 1
     7.343309295        1013.219838      cpu-clock (msec)          #    1.013 CPUs utilized
     7.343309295                  2      context-switches          #    0.002 K/sec
     7.343309295                  1      cpu-migrations            #    0.001 K/sec
     7.343309295                  0      page-faults               #    0.000 K/sec
     7.343309295      2,401,313,050      cycles                    #    2.289 GHz
     7.343309295      1,700,446,830      instructions              #    2.48  insn per cycle
     7.343309295        400,076,590      branches                  #  381.375 M/sec
     7.343309295              9,722      branch-misses             #    0.01% of all branches
     7.343309295        300,137,590      L1-dcache-loads           #  286.108 M/sec
     7.343309295             12,429      L1-dcache-load-misses     #    0.01% of all L1-dcache hits
     7.343309295              6,787      LLC-loads                 #    0.006 M/sec
     7.343309295              5,167      LLC-load-misses           #  246.77% of all LL-cache hits

“圆形”一词意味着我们每毫秒发送一个数据包,因此每一个毫秒发送1000个数据包,因此每轮发送一个数据包。

从上面的转储中我无法理解的是LLC-load-misses。或者,准确地说,我无法找到深入挖掘这一问题根源的方法。

关于这个问题的任何投入都将是非常有益的。

你好,库希尔。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-02 19:52:27

LLC-load-misses的数量应该解释为上一级缓存(通常是现代英特尔芯片的L3 )在所测量的时间间隔内丢失的负载数。

在这个级别上,我相信到达同一缓存行的负载已经被行填充缓冲区“组合”了:如果您访问多个值--所有相同的缓存行--所有这些值都是在LLC中没有显示的,那么从进程的角度来看,这些都是“错过”(从进程的角度来看,这些值的使用将等待完整的误时长),但我相信这只是LLC-load-misses计数器的一次丢失。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52138985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档