Ubuntu 如何提升特定核心并让其他核心闲置

Ubuntu 如何提升特定核心并让其他核心闲置

我正在使用配备 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 核限制,并且保持稳定。请注意,我没有对空闲状态进行任何特殊处理。

相关内容