近期协助出现场,解决了一个非常典型的UEFI 启动参数配置不当导致的服务器降效案例。错误的节能参数配置,导致价值几十万的服务器变成龟速服务器,并造成严重的生产事故。
现场工程师救火-UEFI(BIOS)节能设置导致金牌服务器只跑出龟速-LMLPHP

1. 现象

朋友公司近期准备升级2010年就部署的服务器组,新升级的服务器使用了昂贵的大品牌 32 核64线程处理器,最高主频高达2.6GHz。服务器到位后,由于该配置比原先的12核心服务器不知道高了多少个档次,所以没有经过太细致的检测,就直接部署了生产逻辑。同时,鉴于新的服务器很刚,物理服务器机柜缩减了规模,服务器台数降低到1/2.

在新机器上线后,试着打开几个测试客户端,都没有问题。而后,试着运行智能客服、语音代理,也都打开了。可是到了第二天,大量用户反馈,语音客服半天没有反应,游戏的场景以及登入都变得异常缓慢。

运维初步查看日志,主要问题如下:

  1. 消息队列拥塞,写的没有落的快。
  2. NPC及智能场景算法在多用户高峰期无法实时,导致大量排队。
  3. 后台数据库查询缓慢,索引性能直线下降,比旧系统还慢了70%。

第一反应:是盘阵坏了?

现场工程师救火-UEFI(BIOS)节能设置导致金牌服务器只跑出龟速-LMLPHP

2. 分析

  1. 首先怀疑盘阵损坏,导致kafka、数据库IO瓶颈。但查看指示灯、查询SMART和日志,盘阵并没有问题。
  2. 查看系统监视器,磁盘IO很空闲,只有5%。延迟很小,固态SSD不是吃素的。
  3. 既然不是磁盘,那kafka、数据库为什么慢?查询配置,Kafka使用了数据压缩,zstd模式9。可能是CPU来不及,CPU除了Kafka压缩,还有很多游戏的算法工作。
  4. 查看CPU,64核心竟然跑满了40%多。这种负荷即使在以前老的节点上也没有遇到过。
  5. 查看CPU状态,惊奇发现主频只有 0.9GHz (该CPU理论上能达到3.1GHz峰值速率)。

3. 初步调整

这个情况运维一看,遇到过啊!就是电源节能的问题。

  1. 确认操作系统电源模式为主动散热,最大性能。没问题。
  2. 风扇是否损坏,导致CPU过热保护?查看温度,50度,这,感觉CPU在摸鱼,看似很忙其实没有出力。
  3. 试着调整各种OS参数,CPU主频始终在1.2GHz以下。
    现场工程师救火-UEFI(BIOS)节能设置导致金牌服务器只跑出龟速-LMLPHP
    整到这里,运维就晕了。认为是服务器厂商忽悠买家,开始喷模式。老板找到老丁,连夜进驻。

4. 再次查看

老丁首先使用 CPU-Z 跑分,发现这个十几万的CPU跑分还没有我打游戏的i7好。无论多核还是单核,都是龟速。

而后,老丁也认为是电源管理问题,但了解后,认为OS层面已经做得差不多了。那,只剩主板层面的问题了。这种大厂服务器忽悠的可能性很小,更何况不可能每一台都有问题。一定是哪个配置不对。

吐槽一下:其实早该查看UEFI配置,无奈现在的服务器重启至少5分钟起步,老板不让下线,宁可保持着在线用户游戏到晚上再关机,也不能白天下线。

5. 锁定原因

老丁身体不好,等不及夜里3点了。找一个kafka节点服务器重启, 只要factor优于门限,应该不会影响客户体验。说干就干,F1进入 UEFI配置。

UEFI Setup——System Settings——Operating Modes

马上发现问题,系统被设置为节能模式。

直接修改为最大性能,保存重启。

服务器风扇开始暴躁模式100%Max,进入OS后,风扇开始减速,查看CPU主频到3.1GHz,完毕。

如法炮制,夜里三点,重启配置所有服务器全速工作,游戏进程流畅无比。性能比预想的还好,服务器还可以扩充其他用途。

6. 处理器电源管理参数设置

当代服务器和10年前相比,出场配置一般都是“绿色节能”模式。这种模式下,CPU是根本不能跑出满分的。本文为了照顾面子,就不贴图了。不管有没有遇到性能问题,都可以检查一下自己的服务器的CPU主频,是不是设置为节能模式了。个人认为,极端节能模式大可不必,只要允许最简单的动态频率即可。为了单个服务器的节能,导致需要部署更多的服务器来横向扩展,功耗反而更大了。

主要设置:

[BIOS]
Power-Saving Mod: Maximum Performance
Maximum Performance
C-States: Disable
C1 Enhanced Mode : Disable
Energy Efficient Turbo: Disable

如此配置后,在操作系统层面再设置为“Maximum Performance”模式,即可获得最大性能。如果需要动态频率,则适当打开C1等开关。注意的是不管开关如何,所有策略都选择“最佳性能”,就不会太差。

后记

服务器的节能指标固然重要,但为了满足业务流要求,使用单台高性能服务器还是要比横向扩展多台节能服务器要划算。用户在考虑配置时,要根据自身的情况来优化。

04-26 05:08