
# HCE定制系统启动参数说明
HCE相较CentOS 8存在部分定制系统启动参数，具体说明及用途如下。
#### nohz
在Linux内核2.6.17版本之前，Linux内核为每个CPU设置一个周期性的时钟中断，Linux内核利用这个中断处理一些定时任务，如线程调度等。这样导致就算CPU不需要定时器的时候，也会有很多时钟中断，导致资源的浪费。Linux内核2.6.17版本引入了nohz机制，实际就是让时钟中断的时间可编程，在CPU空闲的情况下减少不必要的时钟中断。
nohz功能对CPU的能耗有积极的作用，但对负载均衡而言却不友好，在部分业务场景下开启nohz会导致性能下降，因此建议默认关闭nohz功能，可以通过在系统启动参数中添加**nohz=off**并重启系统从而关闭该功能。
![](https://support.huaweicloud.com/usermanual-hce/public_sys-resources/caution_3.0-zh-cn.png)
nohz功能在部分特殊场景下对性能有积极作用，例如多个线程同时并发读取/proc/cpuinfo的场景。
#### mitigations
2018年01月，谷歌Project Zero公布现代处理器存在安全漏洞Spectre与Meltdown，这两组漏洞几乎涉及当今大部分主流处理器（包括Intel、AMD、ARM等多种架构）。随后，包括Linux在内的主流操作系统都对漏洞进行了相应的软件修复，mitigations即是控制这些CPU漏洞修复是否开启的开关。
由于漏洞利用处理器硬件的推测执行（Speculative Execution）以及乱序执行（Out-of-order Execution）特性，而这些特性对于现代处理器的性能提升具有不可或缺的作用。因此开启CPU漏洞修复会有一定的性能下降，在某些极端场景下性能下降甚至超过50%，并且软件修复的方法只能缓解不能根治漏洞问题，因此建议默认关闭mitigations功能，可以通过在系统启动参数中添加**mitigations=off**并重启系统从而关闭该功能。
#### cstate
HCE2.0从2412版本开始支持Intel GNR服务器c状态能力，开启c状态会进入节能模式，相应的内核调度性能会下降。该功能为BIOS默认设置，用户可通过**cpupower idle-info** 查看是否开启c状态，返回信息如下图：
![](https://support.huaweicloud.com/usermanual-hce/zh-cn_image_0000002479929058.png)
其中Number of idle states表示支持的c状态数量，Available idle states表示支持的具体c状态。若回显为No idle states则表示未开启c状态。若在性能要求较高场景下，可通过**cpupower idle-set --disable level** (level为c状态等级，0到Number of idle states - 1，此关闭方法无需重启机器)或者启动参数中添加**i** **ntel_idle.max_cstate=0**(需重启生效)来关闭c状态。
