BIOS 对服务器性能的影响

节能在降低能耗的同时也意味着性能的下降。下面介绍的是在 BIOS 这个层面涉及到的一些节能开关,比较具有通用性。
1. Turbo boost
跟超频有关,详细的请看这里

2. C1E, C state
hardwaresecrets 有一篇介绍 Cx state 的文档,比 wiki 上的介绍的更详细。

3. cpu stepping
CPU 版本控制的机制

tomshardware 的这篇测试量化了使用了各种节能设置后,对 SSD 的影响,仅仅开启了 C1E 对整体的性能没有特别大的影响,如果是将所有跟 C states、Active State Power Management相关选项的都开启,会看到明显的下降。另外,文章建议开启 C1E 模式,这个对整体的性能没有太大的影响,同时又能降低功耗。另外需要注意的是,这些功耗的开关对于 HHD 并没有显著的提高,仅对 SSD 有效。

dell 官方有一篇 《low latency env》的参考配置,里面涉及到不少 BIOS 层面的东西。主要分为 "System Profile Setting" 以及 "Memory setting" 和 "Processor Setting" 这三大块,其中效果最明显的应该是第一个 "System Profile Setting"。这个会在下面的 syscfg 里面提到。

关于 syscfg 这个工具,几个常用的参数:

查看 sysprofile 指令的解释:
# ./syscfg -h –SysProfile

导入导出:
# ./syscfg -i/o config

下面的几个就是上面官方文档提到的几个参数:
–QpiSpeed
–logicproc
–virtualization
–hwprefetcher
–adjcacheprefetch
–memtest
–turbomode
–cpuc1e
–cstates
–MonitorMwait
–MemPatrolScrub
–MemRefreshRate
–SysProfile

对于 DELL 的 BIOS 来说,一共有 5 类不同的 profile setting。默认是 "performance per watt(dapc)",而我们更关心的是 "performance" 这个 profile,他表示如下的几个指令的组合:
1. CPU Power Management                         = Maximum Performance
2. Memory Frequence                             = Manimum Performance
3. Turbo Boost                                  = Enabled
4. C1E                                          = Disable
5. C states                                     = Disable
6. Monitor/Mwait                                = Enable
7. Memory Patrol Scrub                          = Standard
8. Memory Refresh Rate                          = 1x
9. Memory Operating Voltage                     = auto
10. Collabrative CPU Performance Control        = Disable

调整之后,效果应该还是很明显的,可以看 serverfault 上的这个 issue

上面所有的如果想批量执行的话,放到 dtk 里面就好了。

另外,有点要提到的是,dmesg 经常报 "Core power limit normal" 的 log,access 上并没有写明问题根源,后来发 ticket 确认,对机器没有影响,只是 BIOS 为了节能而调控 CPU 的一种方式。如果不想看到此类信息,直接将 BIOS 设置成 "performance" 而非 "performance per watt(dapc)" 就好了。

  • muxueqz

    有测试数据吗?

    • http://jaseywang.me/ Jasey Wang

      量化的可以看我上面提到的 tomshardware 写的测评。