我正在使用配备 Xeon 2620 v4、8 核的服务器。
我需要进行使用 4 个内核的性能基准测试。我希望基准测试尽可能稳定,因此我关闭了空闲状态并让所有设备以最大时钟频率运行。
不过这颗CPU全核最高加速2.3GHz,单核最高加速3GHz,不知道4核加速最高能到多少。
有没有办法让 4 个核心具有高加速,而其他核心(可能)处于空闲状态?我希望仅在 4 个高时钟核心上运行基准测试。
答案1
使用 turbostat(我认为是 linux-tools-common 包)确定 4 个活动核心的最大频率。在非静音模式下,它会在启动期间发出一堆东西。示例(4 核处理器):
doug@s15:~$ sudo turbostat
turbostat version 20.03.20 - Len Brown <[email protected]>
...
cpu1: MSR_TURBO_RATIO_LIMIT: 0x23242526
35 * 100.0 = 3500.0 MHz max turbo 4 active cores
36 * 100.0 = 3600.0 MHz max turbo 3 active cores
37 * 100.0 = 3700.0 MHz max turbo 2 active cores
38 * 100.0 = 3800.0 MHz max turbo 1 active cores
...
示例(6 核处理器 - 我将它们全部设置为相同):
$ sudo turbostat
turbostat version 20.03.20 - Len Brown <[email protected]>
...
cpu2: MSR_TURBO_RATIO_LIMIT: 0x2b2b2e2e2e2e2e2e
43 * 100.0 = 4300.0 MHz max turbo 8 active cores <<< I don't actually have 8 cores
43 * 100.0 = 4300.0 MHz max turbo 7 active cores <<< I don't actually have 7 cores
46 * 100.0 = 4600.0 MHz max turbo 6 active cores
46 * 100.0 = 4600.0 MHz max turbo 5 active cores
46 * 100.0 = 4600.0 MHz max turbo 4 active cores
46 * 100.0 = 4600.0 MHz max turbo 3 active cores
46 * 100.0 = 4600.0 MHz max turbo 2 active cores
46 * 100.0 = 4600.0 MHz max turbo 1 active cores
我的处理器已解锁,因此这些东西可以更改。我不知道你的处理器怎么样。无论如何,如果不特别注意热量和电源管理,我不会推荐它。
对于您的测试,请使用 taskset 将作业强制放到 4 个核心上,并让其他核心进入深度空闲状态。在我的示例中,我将使用 4 个核心中的 2 个,并且需要知道 CPU 到核心的映射:核心 0 有 CPU 0 和 4;核心 1 有 CPU 1 和 5;核心 2 有 CPU 2 和 6;核心 3 有 CPU 3 和 7。
所以(该程序是我的,但将以每个线程接近 100% 的负载分出 4 个线程):
$ taskset -c 2,3,6,7 ./waiter 4 960 4 1000000000 0 1
并使用 turbostat 进行观察:
doug@s15:~$ sudo turbostat --quiet --show Core,CPU,Busy%,Bzy_MHz,PkgTmp,PkgWatt,IRQ --interval 6
Core CPU Busy% Bzy_MHz IRQ PkgTmp PkgWatt
- - 0.15 1603 2257 30 3.78
0 0 0.14 1605 264 30 3.78
0 4 0.67 1601 1362
1 1 0.03 1604 56
1 5 0.04 1604 81
2 2 0.14 1604 188 <<<< The system is still idle
2 6 0.03 1603 73
3 3 0.05 1605 83
3 7 0.09 1615 150
Core CPU Busy% Bzy_MHz IRQ PkgTmp PkgWatt
- - 0.15 1602 2372 26 3.79
0 0 0.53 1601 1073 26 3.79
0 4 0.27 1600 538
1 1 0.07 1604 128
1 5 0.09 1603 173
2 2 0.13 1603 180
2 6 0.02 1602 50
3 3 0.04 1604 83
3 7 0.08 1602 147
Core CPU Busy% Bzy_MHz IRQ PkgTmp PkgWatt
- - 37.45 3692 31573 46 26.22
0 0 0.97 3236 3991 46 26.22
0 4 0.15 3285 622
1 1 0.06 2829 189
1 5 0.09 2402 177
2 2 74.62 3693 6727 <<<< The load was added during this sample
2 6 74.54 3696 6690
3 3 74.61 3694 6608
3 7 74.60 3694 6569
Core CPU Busy% Bzy_MHz IRQ PkgTmp PkgWatt
- - 49.46 3696 40399 48 33.60
0 0 1.15 3599 4866 48 33.60
0 4 0.03 3546 139
1 1 0.06 3560 230
1 5 0.04 3562 191
2 2 98.60 3696 8860 <<<< Now steady state with load
2 6 98.60 3696 8821
3 3 98.60 3696 8678
3 7 98.60 3696 8614
Core CPU Busy% Bzy_MHz IRQ PkgTmp PkgWatt
- - 49.46 3694 40381 50 33.72
0 0 1.12 3599 4821 50 33.72
0 4 0.03 3543 170
1 1 0.06 3568 250
1 5 0.05 3564 232
2 2 98.61 3695 8811
2 6 98.61 3695 8813
3 3 98.61 3695 8680
3 7 98.61 3695 8604
Core CPU Busy% Bzy_MHz IRQ PkgTmp PkgWatt
- - 49.46 3695 40356 50 33.83
0 0 1.11 3599 4787 50 33.83
0 4 0.05 3547 243
1 1 0.05 3546 192
1 5 0.05 3543 223
2 2 98.60 3696 8810
2 6 98.60 3696 8813
3 3 98.60 3696 8680
3 7 98.60 3696 8608
Core CPU Busy% Bzy_MHz IRQ PkgTmp PkgWatt
- - 49.39 3695 41291 51 33.92
0 0 0.96 3598 4736 51 33.92
0 4 0.05 3522 199
1 1 0.27 3582 1131
1 5 0.06 3540 259
2 2 98.44 3695 8815
2 6 98.44 3695 8819
3 3 98.43 3695 8703
3 7 98.44 3695 8629
观察 CPU 频率是否接近 2 核限制,并且保持稳定。请注意,我没有对空闲状态进行任何特殊处理。