我在专用 X3440 服务器上运行实时应用程序,想知道为什么应用程序性能比我以前的 VPS 盒子差。然后我下载http://i7z.googlecode.com/svn/trunk/i7z_64bit执行一下,正常使用情况下(最高10%cpu左右),所有CPU核心只停留在900Mhz~1200Mhz左右,波动很快并且不一致。
然后我尝试将调节器从按需设置为性能(回显性能 > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor),我的应用程序性能更好,因为现在所有 CPU 内核都保持在 1700 ~ 1900Mhz 左右(仍在波动) ,但应用程序性能仍然不符合我的标准。
我试图通过键入“service cpuspeed stop”来完全禁用任何缩放,它仍然显示与性能调节器相同的结果。我想知道为什么性能调节器没有将 CPU 频率锁定在最大值。
然后我尝试在每个内核中运行 4 个单独的虚拟低优先级任务: yum install gcc
纳米假人.c
内容:
int main() {
while(1);
}
gcc dummy.c -o 假人
nice taskset -c 0 ./dummy & nice taskset -c 1 ./dummy & nice taskset -c 2 ./dummy & nice taskset -c 3 ./dummy &
这样,所有 4 个内核都将保持在 2533mhz 并且不再波动(无论调节器设置如何),现在我的应用程序性能非常出色,没有任何抱怨。但是,我不喜欢这些任务浪费资源的方式,即使它没有干扰主应用程序,因为它的优先级很低。
我的问题:在我的家用台式 Windows 计算机中,不知何故,我的 CPU 速度总是在最大频率下稳定。但是为什么在这个 CentOS 6 2.6.32 x86_64 专用服务器上没有发生呢?有没有办法在不使用任何不错的低优先级任务的情况下将所有 cpu 内核设置为最大频率?