0x01 前言

昨天我更换服务器的CPU后发现服务器的CPU使用率居高不下,同时所有虚拟机的CPU也显得力不从心。然而我还是找到了原因。

更换CPU的文章请点击这里:从XEON L5630升级到XEON X5675并加装APC UPS

0x02 BUG

一开始我以为是因为系统重新启动需要进行一些运算,可是当过了30分钟,zabbix监控开始发出报警声时,我觉得有点东西不对劲。

我先打开zabbix,看到服务器有几个温度传感器已经报红,同时服务器的散热风扇也在高速运转。通过SSH登陆到服务器中查看得知CPU的24跳线程全部满载。

一开始我还以为是某个虚拟机占用了过多资源或因为更换CPU后导致KVM出现我不了解的情况,在一一登录到虚拟机的同时,zabbix再次发出警报声,这次警报是因为多台虚拟机的CPU使用率超过阀值,而我通过检查虚拟机的资源使用情况也证实了这一点。

这些我意识到情况很不妙,然而当我打开HP System Management时我豁然开朗:

1480069985

这里有log,这太棒了,打开后发现果然有问题:

1480069986

其实问题很简单:

因为我设置了服务器总功耗上限,所以CPU的性能被限制。

0x03 解决

因为之前用的是L5630,这个CPU的功耗是40W,服务器总功耗不超过150W,所以我将服务器的功耗上限设在170W。

但因为我昨天将CPU更换为95W的X5675,这就出现问题了。功耗在175左右徘徊,可是因为设定了上限的因素,CPU的频率被限制了,所以导致性能下降而出现CPU使用率在100%的情况。

另外,我还启用服务器上的电源管理功能,将服务器维持在低功耗的状态。

找到问题点后,我决定将功耗上限的设置禁用并更改电源管理模式:

1480069987

问题就这样被解决了,CPU使用率也因此维持在较低的水平:

1480069988

0x04 结语

我还以为CPU有问题,或者是因为我安装不好损坏了CPU,原来只是虚惊一场。服务器运行一天后,一切正常。