我正在专用的X3440服务器上运行实时应用程序,并想知道为什么应用程序性能比我以前的VPS盒差。然后我下载http://i7z.googlecode.com/svn/trunk/i7z_64bit并执行它以查看在正常使用情况下(在10%左右的CPU中),所有CPU内核仅保持在900Mhz~1200Mhz左右,并且波动很快且不一致。
然后我尝试将调控器从ondemand设置为performance(echo性能> / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor),我的应用程序运行得更好,因为现在所有CPU内核都保持在1700~1900Mhz左右(仍然在波动),但应用程序性能仍然不符合我的标准。
我试图通过输入“service cpuspeed stop”来完全禁用任何缩放,并且它仍然显示与性能调控器相同的结果。我想知道为什么性能调控器没有锁定最高CPU频率
然后我尝试在每个核心中运行4个独立的虚拟低优先级任务: yum install gcc
纳米dummy.c
含量:
int main() {
while(1);
}
gcc dummy.c -o dummy
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内核设置为最大频率?