现在服务器制造商提供的服务器,通常都具备节能功能。这个功能通常是通过调整CPU的主频来实现的。
具有“节能”功能的CPU,设计有N个“能级”,称为‘C-states’,这里有一篇详细介绍的文章。大致意思是说,就是通过调整CPU主频,使CPU处理不同的C-states(通过设置C-states,使CPU工作在不同的主频),从而达到控制电能消耗。合理地使用这个特性,可以达到“节能”的目的。
而实现情况是,如何“合理”地使用,是件困难的事儿,需要结合自己的业务特点进行不断地调整。另外需要说明的是,主频调整的过程对系统的性能是有影响的。
另外,风扇的转速也可以为了节能而进行适当的控制。
大多数用户,恐怕都不会关心“节能”问题。只有当服务器的数据达到一定规模,电费需要单独付费的用户,才会关心。
但是,很多服务器通常默认情况下就开启了这些功能 ,根据配置的不同以及系统配置的不同,最坏的情况就是CPU总是工作在最节能状态,这时的频率并没有达到CPU的极限值。
之前在测试CPU性能的时候,就发现E5600的性能比E5500还不如的怪现象,现在想想,恐怕也是这个“节省”这个问题引起的。
不需要“节能”的用户,为了得到更好的“性能”,应该在BIOS中将所有节能功能都关闭,这个根据不同的设备商,配置项不尽相同。
已经在线上的设备,怎么检查这个问题呢?
如上图所示,E5530处理器的主频应该是2.4G,但是下面显示的cpu MHz(实时更新的)却是1.6G。这说明了这台机器的CPU工作在节能状态,说明了BIOS中开启了“节能”功能 。
另外还有一个查看CPU频率的工具:RHEL5上包名为cpufreq-utils,RHEL6上包名为cpufrequtils。
其中有cpufreq-info:
cpufreq-apref:
有时这个工具会无法工作,好像将/etc/init.d/cpuspeed服务打开,就可以了(没有细究)。假如启了cupspeed还是不支持,那就是真的不支持了。
下面说说,BIOS开启了节能(很多很种方式、模式,Dell的叫PROFILE),机器已经在线上了,不能关机调整,又发现CPU工作在降频状态,能不能补救呢?
可以使用cpuspeed服务试试,在/etc/sysconfig/cpuspeed中,将GOVERNOR设置为performance,然后启动cpuspeed服务,再观察CPU的主频,看是否恢复到***频率,假如不行,很不兴,你的BIOS中设置的节能模式,不能由os控制。只能调整BIOS,重启系统了。