公司跑自动驾驶业务购买了一批宝德 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 和内存都是一样的了,是主板原因还是啥原因?
1
felixcode 2022-10-01 01:06:47 +08:00 via Android 1
主板供电不行?或者散热也有可能。
|
2
gouchaoer2 OP 还有就是 perf 工具对 2 台 linux 主机进行采样的时候,左边是有问题的( soft_irq 一直比右边高),右边是正常的。我不知道这到底是一个软件问题,还是硬件问题
![图标]( ) |
3
keepro 2022-10-01 01:19:50 +08:00
我遇到的类似问题检查了这 2 个地方:
1 ,bios 能耗模型,是省电还是自动或性能模式,从已知的信息来看设置的是自动或省电。 2 ,可能是服务器电源模块供电不足,高负载时处于吃不饱的情况,所以频率被限制。 但实际情况来看,感觉是供电不足可能性更大,可以再判断下。 |
4
Chihaya0824 2022-10-01 01:25:15 +08:00
@keepro 我也感觉是供电问题,遇到过一次电源有问题导致整个 cpu 都在降频的情况
|
5
lazyyz 2022-10-01 01:27:51 +08:00 1
这个时候不是应该第一时间联系厂商,然后给他们开 case 么?
|
6
gouchaoer2 OP @keepro
@Chihaya0824 如果是供电原因,我先运行 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 ``` |
7
geekvcn 2022-10-01 02:02:01 +08:00 1
有以下几种可能
1.服务器硬件系统供电不足 2.服务器 BIOS 设置了功耗墙或者节能模式 3.你跑的任务由于负载高,服务器散热不足导致撞温度墙降频,你换主板的时候散热系统是另一套 4.你跑的任务调用了 AVX2 ,主板有类似 AVX Offset 的功能或者直接触发高温降频 建议检查供电,温度,然后看看两套系统内核是否相同排除系统因素,都没问题建议联系厂家技术支持 |
8
dayeye2006199 2022-10-01 09:04:39 +08:00 3
你付了钱的,叫供应商过来给你解决
|
9
blankmiss 2022-10-01 12:29:33 +08:00
这种让供应商过来岂不是更好 企业级售后
|
11
GoodRui 2022-10-01 13:53:49 +08:00
@gouchaoer2 你好楼主我歪个楼,左边的是文本编辑器吗?用的什么呢?想找个有各种语法高亮、颜值在线、轻量高效的文本编辑器用用,看楼楼主这个还挺对眼的
|
12
AnLuoRidge 2022-10-01 16:54:21 +08:00
@GoodRui 这一看就是 Notepad ++。
不知道是什么阻止了你用 VS Code ,但如果要轻量+只是文本编辑,可以考虑 Notepad ++, EmEditor 甚至是 Markdown 编辑器如 Typora 。 |
13
ysc3839 2022-10-01 23:09:49 +08:00 via Android
|
14
Damn 2022-10-01 23:13:52 +08:00 via iPhone
|
15
ysc3839 2022-10-01 23:17:33 +08:00 via Android
@Damn 个人之前对比测试过 Notepad3 和 Kate Editor ,界面不如 Kate Editor 好看,功能不如 Notepad++和 Kate Editor 多。Notepad3 冷启动速度比 Kate Editor 快,但热启动速度不如 Kate Editor 。Notepad3 启动后窗口出来会白屏一会才能操作,Kate Editor 用稍微短的时间就能出现界面。
|
16
ysc3839 2022-10-01 23:18:12 +08:00 via Android
另外 Kate Editor 还跨平台,可以在不同的操作系统上保持一致的体验。
|
17
forgottencoast 2022-10-02 11:12:44 +08:00
歪楼歪的这么快,触不及防。。。。
|
18
GoodRui 2022-10-02 12:38:45 +08:00
@AnLuoRidge
@ysc3839 我也用 vscode ,但是经常冷启动打开几百 M 的 log 文件,有可能一看没有需要的就立马关了。这种情况下感觉 vscode 有点大了,启动有点慢。没有 sublime 那种即点即开的迅捷感。但是 sublime 配置又太繁琐,每次到了新环境下各种语法高亮什么的又得现下插件配置什么的...有点头大,就想找个轻量灵动,颜值在线,开箱即用,语法高亮全点的编辑器轻度使用。 |
19
GoodRui 2022-10-02 12:41:03 +08:00
@forgottencoast 你不是也为歪楼事业添砖加瓦了嘛~
|
20
01dscum 2022-10-02 13:53:19 +08:00
我的 PC 之前也有这种情况 是供电不足导致的 如果跑程序的时候频率一下子就降下来的话大概率不是温度问题而是供电问题 能否提供服务器的电源瓦数?如果不够的话很可能需要更换
|
21
cndns 2022-10-02 21:28:37 +08:00 via Android
买一个测算功耗表的设备,接宝德主板运行任务用了多少功耗,接华硕主板运行同样的任务用了多少功耗。就可以看出,算力几乎与功耗成正比。算力越大功耗就越高。
|
22
fisherwei 2022-10-02 22:02:58 +08:00
你们的解压程序有没有用到 AVX2 ?
看起来像是 bios bug ,找厂商解决一下吧 |
24
keepro 2022-10-08 22:35:11 +08:00
@gouchaoer2 使用 stress -c 32 压 cpu 时,这时候 gpu 应该是闲置状态吧,它的功耗非常小,而这个时候系统供电能力会不会刚刚好够 CPU 用?实际业务是导致 CPU 和 GPU 满载,BIOS 的策略会优先供电给 GPU ,所以 CPU 频率较低,限制了 CPU 。
有条件可以查查电源的额定功率,另外 cpu 的额定功率是 100w ,超频时肯定会超过 100w 。从以上提供的信息看我感觉还是供电不足。 以上猜测仅供参考,感谢各位大佬歪楼,哈哈哈(如果提供的信息没用还是建议问问厂商,一般情况下他们的知识库里都有相关的解决方案,解决不了也会有专门的工程师跟进,相对节省时间)。 |
25
kenneth104 2022-10-10 17:29:58 +08:00
早些时候也在折腾 epyc ,但由于穷所以都是二手配件,并且是二代
所以在拿到设备之后,都恢复默认并加载性能模式 但即使这样,这边的 hyper-v 负载还是上不去,最后把 windows server 的电源模式改为“高性能”就没问题了 这个情况在 Xeon 上从来没有过 上面说的寻求厂商帮助,的确是最佳选择,也可以开启 IPMI 让他们帮你整好 |
26
gouchaoer2 OP @geekvcn
@01dscum @cndns @keepro @kenneth104 我今天来更新一下初步结论,原因应该是供应商下载了一个有问题的 ffmpeg 版本,这个 ffmpeg 版本应该只是某个分支的 CI 不稳定调试版本,这个版本的 ffmpeg 用 GPU 解压一个 h264 文件的时候,会打满所有的 cpu 核心,推测是用了多线程优化。但是当我们有 11 路的 h264 视频的时候,这个版本的 ffmpeg 的多线程优化就会有问题,运气不好不太稳定的话就会导致性能不够 fps 有问题,再更换稳定的 ffmpeg 发布版本之后,一切就正常了。楼上一切都让供应商解决,这个问题就不是服务器厂商的原因,而且这是偶发的 bug 特别困难,供应商和之前的解决办法就是力大砖飞,升级 cpu 升级显卡,最后测试还是偶发有问题。然而真的找到了原因,就会发现如果自己不去找原因,供应商根本没有兴趣去找原因 |
27
cndns 2022-10-28 12:33:30 +08:00
@gouchaoer2 找到原因就好
|
28
keepro 2022-10-28 18:04:14 +08:00
找到原因就好,软件的坑真的只能自己慢慢去找,涉及项太多了
|
29
gouchaoer2 OP |
30
gouchaoer2 OP 当然了之前得 ffmpeg 也好、绑定 cpu 核心也好,都是有效的优化,被这个问题搞得脱了一层皮,谢谢大家了
|
31
Chihaya0824 2022-11-08 10:04:56 +08:00
恭喜,找到原因就好
|