客户反馈某厂商物理服务器设备cpuspeed服务开启失败,并有报警信息:
p4-clockmod: Warning: EST-capable CPU detected. The acpi-cpufreq module offers voltage scaling in addition to frequency scaling. You should use that instead of p4-clockmo。
【CpuSpeed介绍】
Redhat 官方解释CPUspeed:
CPUSpeed for Linux adjusts the CPU speed dynamically based on the demand for processing power.Disable it unless you are using a laptop
引用华为物理服务器设置说明:
【问题背景】
不同的厂家管理CPU的方式不一样,交付的设备为了保证打开了服务器的最大性能,目前通过两种方式保证系统CPU运行在最高性能模式并且开启睿频加速:
1) 设备bios中设置performance模式。
2) OS内cpuspeed配置性能模式。
这里针对,部分厂商物理设备使用方式2),这部分厂商服务器在bios中设置为performance模式后,服务器无法正常睿频。所以选择了Custom模式,把控制频率的任务交给OS;OS内的cpuspeed调节CPU到最高性能模式。
大部分的设备使用方式1),在bios设置performance模式。这样做可以避免用户误操作关掉了OS内的cpuspeed服务,导致cpu降频的情况。
值得提醒的是,当同时配置了方式1)方式2)时,方式1)起全部作用。CPU仍运行在最高性能模式并且开启睿频加速。
【引入问题】
D厂商的服务器较特别,在bios已经打开performance模式的情况下,上层OS会因为无法加载acpi-cpufreq而不能开启cpuspeed。如果要成功开启cpuspeed,须把bios调整成custom模式,让OS控制频率。
【问题分析】
D厂商设备cpuspeed服务开启失败的原因是由于设备bios配置了performance模式,在这个模式下禁止OS控制CPU频率。
因为bios已经做设置,所以整机CPU性能仍会运行在最高性能模式。
【测试验证】
bios的performance模式下,CPU是最高性能模式:测试工具为 i7z。
如图中蓝框所示:CPU处于c0,c1运行,是最高频率。红框所示:CPU所有核都打开了睿频加速。最高睿频达到了2.6G(只睿频1或2个核时,最高睿频才能达到3.1G)。
【建议处理方式】
建议用以下两种方式之一处理这个问题:
1) 开启cpuspeed失败不影响CPU的性能。可以忽略D厂商机器上的这条告警。
2) 把D厂商设备的bios调整成custom模式,转为OS控制频率,可以成功开启cpuspeed。
步骤:
a)进入bios中System BIOS Setting->System Profile Settings选项;
b)System Profile选为Custom;
c)CPU Power Management 选为 OS DBPM;
d)重启服务器。
【重要提醒】
如果选择custom模式,OS去控制频率,那么请务必开启cpuspeed,以及在启动内核参数限制频率在c0和c1,才能得到cpu不变频以及不异常死机,否则如果遗漏了(重新build内核,忘记配置等运维情况),极端情况下会有极小概率出现变频和死机的情况。
附影响cpu性能的配置:(红色表示现在的配置)