首页 文章

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

提问于
浏览
5

我正在专用的X3440服务器上运行实时应用程序,并想知道为什么应用程序性能比我以前的VPS盒差 . 然后我下载http://i7z.googlecode.com/svn/trunk/i7z_64bit并执行它以查看在正常使用情况下(在10%左右的CPU中),所有CPU核心仅保持在900Mhz~1200Mhz左右,并且波动迅速且不一致 .

然后我尝试将调控器从ondemand设置为performance(echo performance> / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor),我的应用程序运行得更好,因为现在所有的CPU核心都保持在1700~1900Mhz左右(仍在波动) ,但应用程序性能仍然不符合我的标准 .

我试图通过输入“service cpuspeed stop”来完全禁用任何缩放,它仍然显示与性能调控器相同的结果 . 我想知道为什么性能调控器没有锁定最高CPU频率 .

然后我尝试在每个核心中运行4个独立的虚拟低优先级任务:yum install gcc

纳米虚拟

内容:

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

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

相关问题