我工作的地方有一个小型集群,我负责管理。节点运行 CentOS 7.5。我们的旧节点使用 Xeon E5 v4 CPU,主要是E5-2699 v4在较旧的节点上,Intel Turbo Boost 可以正常工作,并且 CPU 的各个核心可以自由地加速到最大 Turbo 频率,如 CPU 规格中指定的那样。
问题在于我们的新系统。大多数系统都配备了至强金牌 6152CPU。它们只会加速到基本频率(2.1 GHz),永远不会超过该频率。该lscpu
命令还指示这是 CPU 的最大速度,而它应该表示最大值为 3.7 GHz(最大 Turbo)。
我怀疑问题与速度控制驱动程序有关。在较旧的系统上,该命令cpupower frequency-info
指示驱动程序为“intel_pstate”。然而,在较新的系统上,该命令指示驱动程序为“acpi-cpufreq”。这让我觉得这是“当专用驱动程序不起作用时,CPU 速度控制的默认驱动程序”。
从我迄今为止所做的研究中,我了解到 acpi-cpufreq 是一个内核模块,而 intel_pstate 似乎是内核的一部分。
我们可以做些什么来让我们的新系统正确控制速度,以完全访问其指定的最大涡轮速度?
我们已经检查过 BIOS 设置中是否启用了 turbo。
(我们的 ATOM 也遇到了同样的问题C3955处理器。
答案1
至少在初步测试中已经解决了。
正如 @silmaril 和 @Michael Hampton 所建议的,问题出在内核上。我将其更新为 4.19.8-1.el7.elrepo.x86_64,现在我试用的基于 Xeon Gold 6152 CPU 的系统现在报告正确的 3.7 GHz 作为 CPU 最大速度。它还报告频率控制驱动程序现在是“intel_pstate”。
我遵循了本文,基本上就是让你从ELRepo(为 CentOS/RHEL 编译较新的内核和其他东西),然后下载并安装他们拥有的最新内核。
编辑:
我现在还针对我们这里也有的基于 ATOM C3955 的系统进行了测试。结果有点……可疑。使用类似lscpu
和的命令进行检查cpupower
似乎表明 CPU 仍然停留在最大速度为基本时钟速度的状态。但是,在重负载下运行时,使用命令 CPU 时钟速度将显示在(或接近)CPU 的最大涡轮速度watch -n.1 'cat /proc/cpuinfo | grep -i mhz'
。所以它可以工作,但并不完美。