性能调控器不会将CPU频率锁定在最大值

时间:2012-10-19 07:07:10

标签: performance cpu scaling ondemand

我正在专用的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内核设置为最大频率?

1 个答案:

答案 0 :(得分:0)

一个简短的谷歌会话给我带来了article,这表明需要重新启动cpuspeed服务而不是停止它。