公司跑自动驾驶业务购买了一批宝德 Linux 服务器( AMD 的 EPYC-7313 的 cpu ,内存 128G 的 DDR4 ,RTX4000 显卡),再跑一个 cpu+GPU 计算量很高的视频解码任务时,就会偶发 cpu 消耗翻倍导致性能跟不上的情况……
我们一开始认为是宝德 linux 服务器开启了节能模式,如果折腾了 BIOS 啥的,还有用 cpupower frequency-set --governor performance 之类的来调整 CPU 运行模式,但是都没用……
具体现象为,当在跑任务的时候( Freq 一直在 1.2GHz 上不去):
cpupower monitor
| Mperf || Idle_Stats
CPU| C0 | Cx | Freq || POLL | C1 | C2
0| 74.68| 25.32| 1237|| 0.82| 4.83| 20.66
16| 77.94| 22.06| 1207|| 0.50| 4.28| 17.86
1| 77.36| 22.64| 1245|| 1.03| 7.63| 15.25
17| 78.28| 21.72| 1230|| 1.10| 8.06| 13.88
2| 82.80| 17.20| 1240|| 0.76| 5.65| 11.79
18| 79.85| 20.15| 1216|| 1.20| 7.47| 13.03
3| 81.80| 18.20| 1221|| 0.73| 4.73| 13.61
19| 81.68| 18.32| 1235|| 1.17| 14.89| 3.64
4| 77.61| 22.39| 1229|| 0.91| 8.26| 14.33
20| 76.68| 23.32| 1223|| 0.97| 8.67| 14.93
5| 78.99| 21.01| 1218|| 1.24| 8.46| 12.82
21| 77.96| 22.04| 1214|| 0.91| 8.77| 13.45
6| 81.66| 18.34| 1216|| 1.10| 7.23| 11.36
22| 77.06| 22.94| 1238|| 0.86| 10.71| 12.48
7| 82.22| 17.78| 1211|| 1.25| 8.27| 9.83
23| 75.71| 24.29| 1239|| 1.01| 7.51| 16.85
8| 82.42| 17.58| 1215|| 1.27| 5.81| 12.03
24| 80.49| 19.51| 1217|| 1.24| 8.50| 11.21
9| 76.53| 23.47| 1236|| 1.26| 7.81| 15.97
25| 76.46| 23.54| 1235|| 1.25| 19.57| 4.35
10| 80.01| 19.99| 1226|| 1.38| 6.25| 13.95
26| 80.47| 19.53| 1223|| 1.05| 6.72| 13.06
11| 79.42| 20.58| 1218|| 1.43| 6.60| 14.39
27| 78.63| 21.37| 1226|| 0.87| 16.38| 5.16
12| 79.08| 20.92| 1221|| 1.02| 6.73| 14.35
28| 76.58| 23.42| 1203|| 0.89| 7.09| 16.52
13| 78.86| 21.14| 1216|| 1.07| 6.56| 14.90
29| 81.06| 18.94| 1217|| 1.23| 6.09| 13.03
14| 80.43| 19.57| 1219|| 1.29| 7.22| 12.54
30| 77.07| 22.93| 1219|| 0.77| 4.97| 18.12
15| 80.07| 19.93| 1231|| 1.18| 8.80| 11.41
31| 75.65| 24.35| 1218|| 1.17| 8.30| 16.31

当任务运行结束之后,Freq 反而上去了:
cpupower monitor
| Mperf || Idle_Stats
CPU| C0 | Cx | Freq || POLL | C1 | C2
0| 0.46| 99.54| 1836|| 0.00| 1.20| 98.34
16| 0.01| 99.99| 1954|| 0.00| 0.00| 99.97
1| 0.18| 99.82| 2214|| 0.00| 0.07| 99.73
17| 0.10| 99.90| 1880|| 0.00| 0.00| 99.88
2| 0.24| 99.76| 2393|| 0.00| 1.38| 98.37
18| 0.04| 99.96| 2300|| 0.00| 0.02| 99.92
3| 0.03| 99.97| 1833|| 0.00| 0.00| 99.95
19| 0.07| 99.93| 1862|| 0.00| 0.00| 99.92
4| 1.18| 98.82| 3511|| 0.00| 0.00| 98.80
20| 0.07| 99.93| 1855|| 0.00| 0.00| 99.92
5| 0.10| 99.90| 2266|| 0.00| 0.16| 99.72
21| 0.01| 99.99| 1898|| 0.00| 0.00| 99.98
6| 0.36| 99.64| 2946|| 0.00| 0.10| 99.53
22| 0.29| 99.71| 1978|| 0.00| 0.10| 99.59
7| 0.14| 99.86| 1906|| 0.00| 1.07| 98.77
23| 0.04| 99.96| 1969|| 0.00| 0.00| 99.95
8| 2.01| 97.99| 3704|| 0.00| 0.00| 97.97
24| 62.50| 37.50| 3700|| 0.02| 36.97| 0.00
9| 0.17| 99.83| 2976|| 0.00| 0.08| 99.74
25| 0.47| 99.53| 3425|| 0.00| 1.20| 98.33
10| 11.70| 88.30| 3702|| 0.00| 6.11| 82.09
26| 22.62| 77.38| 3699|| 0.06| 74.15| 2.70
11| 0.22| 99.78| 3041|| 0.00| 1.82| 97.95
27| 0.05| 99.95| 3016|| 0.00| 0.00| 99.95
12| 0.06| 99.94| 3671|| 0.00| 0.00| 99.92
28| 3.04| 96.96| 3696|| 0.00| 6.87| 90.89
13| 0.03| 99.97| 3003|| 0.00| 0.00| 99.95
29| 0.56| 99.44| 3090|| 0.00| 1.40| 98.04
14| 0.17| 99.83| 3269|| 0.00| 0.11| 99.70
30| 0.21| 99.79| 3175|| 0.00| 2.82| 96.98
15| 0.15| 99.85| 3050|| 0.00| 0.14| 99.69
31| 0.10| 99.90| 3020|| 0.00| 0.44| 99.48

如果把相同的 cpu 换到另一个华硕的主板上,在跑任务的时候,Freq 就挺正常的:
cpupower monitor
| Mperf || Idle_Stats
CPU| C0 | Cx | Freq || POLL | C1 | C2
0| 35.70| 64.30| 2578|| 1.78| 1.75| 62.64
16| 33.20| 66.80| 2525|| 1.30| 3.03| 63.82
1| 34.01| 65.99| 2589|| 0.90| 1.20| 64.85
17| 20.35| 79.65| 2731|| 0.36| 1.01| 78.68
2| 28.49| 71.51| 2613|| 0.61| 1.32| 70.24
18| 24.66| 75.34| 2672|| 0.49| 1.74| 73.63
3| 28.69| 71.31| 2923|| 0.52| 1.80| 69.52
19| 42.85| 57.15| 2694|| 0.40| 1.35| 55.81
4| 41.73| 58.27| 2856|| 1.48| 1.73| 56.55
20| 42.58| 57.42| 2791|| 0.79| 1.29| 56.16
5| 35.88| 64.12| 2808|| 0.64| 1.57| 62.56
21| 43.35| 56.65| 2803|| 1.30| 2.93| 53.74
6| 49.39| 50.61| 2869|| 0.45| 0.60| 50.05
22| 42.41| 57.59| 2910|| 0.87| 1.23| 56.40
7| 47.18| 52.82| 2823|| 0.99| 1.33| 51.58
23| 46.76| 53.24| 2859|| 0.99| 1.87| 51.37
8| 28.51| 71.49| 2744|| 0.66| 0.31| 71.19
24| 22.99| 77.01| 2779|| 0.44| 1.32| 75.70
9| 34.79| 65.21| 2648|| 0.76| 2.88| 62.34
25| 23.86| 76.14| 2727|| 0.63| 1.59| 74.60
10| 29.58| 70.42| 2562|| 0.57| 2.24| 68.21
26| 26.68| 73.32| 2615|| 0.58| 2.49| 70.85
11| 26.21| 73.79| 2758|| 0.45| 0.78| 73.00
27| 22.49| 77.51| 2801|| 0.34| 0.65| 76.76
12| 44.35| 55.65| 2695|| 1.43| 2.13| 53.61
28| 35.95| 64.05| 2825|| 1.01| 1.77| 62.33
13| 37.48| 62.52| 2726|| 0.98| 2.34| 60.26
29| 41.76| 58.24| 2824|| 1.33| 3.24| 55.07
14| 44.83| 55.17| 2755|| 1.20| 2.04| 53.14
30| 40.05| 59.95| 2838|| 0.77| 1.51| 58.45
15| 43.71| 56.29| 2893|| 1.15| 2.40| 53.96
31| 49.34| 50.66| 2834|| 0.48| 0.63| 50.09

大家帮忙看看这是为啥呢?已经确认 CPU 和内存都是一样的了,是主板原因还是啥原因?

主板供电不行?或者散热也有可能。

还有就是 perf 工具对 2 台 linux 主机进行采样的时候,左边是有问题的( soft_irq 一直比右边高),右边是正常的。我不知道这到底是一个软件问题,还是硬件问题

图标

我遇到的类似问题检查了这 2 个地方:

1 ,bios 能耗模型,是省电还是自动或性能模式,从已知的信息来看设置的是自动或省电。

2 ,可能是服务器电源模块供电不足,高负载时处于吃不饱的情况,所以频率被限制。

但实际情况来看,感觉是供电不足可能性更大,可以再判断下。

我也感觉是供电问题,遇到过一次电源有问题导致整个 cpu 都在降频的情况

这个时候不是应该第一时间联系厂商,然后给他们开 case 么?

如果是供电原因,我先运行 stress -c 32 这个命令压满 32 个核心,然后可以看到频率还是能上来的:

 cpupower monitor
 | Mperf || Idle_Stats
 CPU| C0 | Cx | Freq || POLL | C1 | C2
 0| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 16| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 1| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 17| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 2| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 18| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 3| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 19| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 4| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 20| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 5| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 21| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 6| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 22| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 7| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 23| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 8| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 24| 99.92| 0.08| 3254|| 0.00| 0.02| 0.00
 9| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 25| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 10| 99.94| 0.06| 3254|| 0.00| 0.00| 0.00
 26| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 11| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 27| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 12| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 28| 99.93| 0.07| 3254|| 0.00| 0.00| 0.00
 13| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 29| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 14| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 30| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 15| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00
 31| 99.95| 0.05| 3254|| 0.00| 0.00| 0.00

有以下几种可能
1.服务器硬件系统供电不足
2.服务器 BIOS 设置了功耗墙或者节能模式
3.你跑的任务由于负载高,服务器散热不足导致撞温度墙降频,你换主板的时候散热系统是另一套
4.你跑的任务调用了 AVX2 ,主板有类似 AVX Offset 的功能或者直接触发高温降频

建议检查供电,温度,然后看看两套系统内核是否相同排除系统因素,都没问题建议联系厂家技术支持

你付了钱的,叫供应商过来给你解决

这种让供应商过来岂不是更好 企业级售后

感觉你这个比较接近真实情况

你好楼主我歪个楼,左边的是文本编辑器吗?用的什么呢?想找个有各种语法高亮、颜值在线、轻量高效的文本编辑器用用,看楼楼主这个还挺对眼的

这一看就是 Notepad ++。

不知道是什么阻止了你用 VS Code ,但如果要轻量+只是文本编辑,可以考虑 Notepad ++, EmEditor 甚至是 Markdown 编辑器如 Typora 。

个人推荐 VSCode 或者 Kate Editor

提议 notepad3 ,++以前用过,在搜索文件夹的时候效率非常低,就弃用了。换 notepad3 以后搜索文件夹奇快无比。

个人之前对比测试过 Notepad3 和 Kate Editor ,界面不如 Kate Editor 好看,功能不如 Notepad++和 Kate Editor 多。Notepad3 冷启动速度比 Kate Editor 快,但热启动速度不如 Kate Editor 。Notepad3 启动后窗口出来会白屏一会才能操作,Kate Editor 用稍微短的时间就能出现界面。

另外 Kate Editor 还跨平台,可以在不同的操作系统上保持一致的体验。

歪楼歪的这么快,触不及防。。。。

我也用 vscode ,但是经常冷启动打开几百 M 的 log 文件,有可能一看没有需要的就立马关了。这种情况下感觉 vscode 有点大了,启动有点慢。没有 sublime 那种即点即开的迅捷感。但是 sublime 配置又太繁琐,每次到了新环境下各种语法高亮什么的又得现下插件配置什么的...有点头大,就想找个轻量灵动,颜值在线,开箱即用,语法高亮全点的编辑器轻度使用。

你不是也为歪楼事业添砖加瓦了嘛~

我的 PC 之前也有这种情况 是供电不足导致的 如果跑程序的时候频率一下子就降下来的话大概率不是温度问题而是供电问题 能否提供服务器的电源瓦数?如果不够的话很可能需要更换

买一个测算功耗表的设备,接宝德主板运行任务用了多少功耗,接华硕主板运行同样的任务用了多少功耗。就可以看出,算力几乎与功耗成正比。算力越大功耗就越高。

你们的解压程序有没有用到 AVX2 ?

看起来像是 bios bug ,找厂商解决一下吧