我的cpu最大频率为2.8GHZ,cpu频率模式是性能,但cpu-cycle只有0.105GHZ来自perf,为什么?
cpu-cycles事件是0x3c,它是CPU_CLK_UNHALTED.THREAD_P还是CPU_CLK_THREAD_UNHALTED.REF_XCLK?
我可以直接从perf读取PMC寄存器吗?
现在命令'mpstat'使用cpu-8达到了90%。
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。
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
我想通过perf了解cpu-8。
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-cycles只有0.105GHZ,真的很奇怪。
我试着理解cpu-cycles意思。
cat /sys/bus/event_source/devices/cpu/events/cpu-cycles
event=0x3c
我在19.6会议,第40页上查阅了“英特尔®64和IA-32架构软件开发人员手册第3卷”文档。
我还检查了cpu频率设置,cpu应该以最大频率运行。
cat scaling_governor
performance
cat scaling_governor
performance
============================================== < / p>
我尝试这个命令:
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-kvm创建。
该应用程序用于从网络接收数据包并处理它们。
答案 0 :(得分:0)
CPU 周期可能会因为 CPU 进入 C1 或 C2 空闲状态而被冻结。