![HyperV 上的 SLES 客户机:高 CPU 使用率与准确的计时](https://linux22.com/image/562982/HyperV%20%E4%B8%8A%E7%9A%84%20SLES%20%E5%AE%A2%E6%88%B7%E6%9C%BA%EF%BC%9A%E9%AB%98%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E4%B8%8E%E5%87%86%E7%A1%AE%E7%9A%84%E8%AE%A1%E6%97%B6.png)
问题如下:SLES 10 SP1 客户机正在 HyperV 上运行。我需要在此机器上进行准确的计时,因此我已将这些内核参数(已证明可在其他相同的 SLES 10 SP1 客户机上运行)应用于引导加载程序配置:
时钟=acpi_pm 分频器=10
当然,NTP 服务已打开,虚拟机管理程序和客户机之间的时间同步已关闭。
此后,时间保持准确,但我遇到了系统 CPU 消耗急剧增加的情况。一旦我删除clock=acpi_pm参数,时间漂移就会恢复,但 CPU 消耗正常。
我确实需要这个盒子上的正确时间。而且我还有另一个盒子,这个时钟参数值可以正常工作。
有人知道如何在不对 CPU 造成太大影响的情况下保持时间正确吗?
谢谢你们。
答案1
VMware 建议SLES 10 SP1 的一组参数略有不同:
时钟=pmtmr hpet=禁用
我通常只在 Hyper-V 下运行 Windows 客户机,因此我不确定这是否同样适用于您的环境。当然值得一试。
答案2
很简单:不要虚拟化。
根据定义,虚拟化存在时间偏差。高精度软件与虚拟化配合使用效果不佳。我这里有一个类似的系统(告诉我每小时同步 36 毫秒),每秒获得恒定的 100 个数据包左右的数据流以保持同步。
在虚拟化下根本无法工作。Virtualiaztion Hyper-Visors 目前不具备实时功能。