首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么cpu周期比cpu当前频率少得多?

为什么cpu周期比cpu当前频率少得多?
EN

Stack Overflow用户
提问于 2018-01-19 05:53:59
回答 1查看 349关注 0票数 0

我的cpu最大频率是2.8GHZ,cpu频率模式是性能,但cpu周期仅为0.105GHZ从perf,为什么?

cpu循环事件是0x3c,是CPU_CLK_UNHALTED.THREAD_P还是CPU_CLK_THREAD_UNHALTED.REF_XCLK?

我能直接从perf中读取PMC寄存器吗?

现在,通过命令'mpstat‘,cpu-8的使用率达到90%。

代码语言:javascript
复制
CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
 8    0.00    0.00    0.98    0.00    0.00    0.00    0.00   89.22    0.00    9.80
 8    0.00    0.00    0.99    0.00    0.00    0.00    0.00   88.12    0.00   10.89

cpu为Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz。

代码语言:javascript
复制
processor       : 8
vendor_id       : GenuineIntel
cpu family      : 6
model           : 62
model name      : Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
stepping        : 4
microcode       : 0x428
cpu MHz         : 2800.000
cache size      : 25600 KB

我想了解一下cpu-8的perf。

代码语言:javascript
复制
perf stat -C 8

Performance counter stats for 'CPU(s) 8':

   8828.237941      task-clock (msec)         #    1.000 CPUs utilized          
        11,550      context-switches          #    0.001 M/sec                  
             0      cpu-migrations            #    0.000 K/sec                  
             0      page-faults               #    0.000 K/sec                  
   926,167,840      cycles                    #    0.105 GHz                    
 4,012,135,689      stalled-cycles-frontend   #  433.20% frontend cycles idle   
   473,099,833      instructions              #    0.51  insn per cycle         
                                              #    8.48  stalled cycles per insn
    98,346,040      branches                  #   11.140 M/sec                  
     1,254,592      branch-misses             #    1.28% of all branches        

   8.828177754 seconds time elapsed

cpu周期只有0.105GHZ,真的很奇怪。

我试着理解cpu周期的含义。

代码语言:javascript
复制
cat /sys/bus/event_source/devices/cpu/events/cpu-cycles
event=0x3c

我查阅了文件“Intel 64和IA-32架构软件开发人员手册第3卷”,第19.6期,第40页。

我也检查cpu频率设置,cpu应该在最大频率运行。

代码语言:javascript
复制
cat scaling_governor
performance

cat scaling_governor
performance

==============================================

我尝试这个命令:

代码语言:javascript
复制
 taskset -c 8 stress --cpu 1 

perf stat -C 8 sleep 10

 Performance counter stats for 'CPU(s) 8':

      10000.633899      task-clock (msec)         #    1.000 CPUs utilized          
             1,823      context-switches          #    0.182 K/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
                 8      page-faults               #    0.001 K/sec                  
    29,792,267,638      cycles                    #    2.979 GHz                    
     5,866,181,553      stalled-cycles-frontend   #   19.69% frontend cycles idle   
    54,171,961,339      instructions              #    1.82  insn per cycle         
                                                  #    0.11  stalled cycles per insn
    16,356,002,578      branches                  # 1635.497 M/sec                  
        33,041,249      branch-misses             #    0.20% of all branches        

      10.000592203 seconds time elapsed

关于我的环境的一些详细信息

我运行一个应用程序,让我们把它称为'A',在虚拟机'V‘中,在主机’H‘中。

虚拟机由qume创建。

该应用程序用于接收来自网络的数据包并处理它们。

EN

回答 1

Stack Overflow用户

发布于 2021-05-05 02:37:00

由于CPU进入C1或C2空闲状态,CPU周期可能被冻结.

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

https://stackoverflow.com/questions/48334922

复制
相关文章

相似问题

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