我试图用renice 19 (Linux 3.11)给一个cpu绑定的应用程序调度最低的优先级。 但是,它似乎没有按预期工作,或者我有一个理解问题。
让我来描述两种我已经尝试过的方法。 我期望在两个方面我都会得到同样的结果,但是我没有。 考虑应用程序loop是一个繁忙的循环: int main() { for(;;) ; return 0; } int main() { for(;;) ; return 0; } int main() { for(;;) ; return 0; } 。
实验1
开了一个terminal
运行./loop & cpu一样多(例如,我有4个cpu)。
跑了一个loop实例,并将其重新命名为19
结果如预期。 非reniced loop实例几乎100%cpu,每个实例有约1%。
实验2
开了两个terminal
terminal1:运行./loop & cpu一样多。
2号航站楼:再次运行一个loop并将其重新设置为19
结果并不如预期。 在terminal2启动的loop实例有100%(虽然有19),而terminal1的loop实例共享其余的资源。
寻找与OS调度程序支持的Linux线程池api
在使用gettimeofday时,初始计时结果较慢 – 在RHEL6服务器下更糟糕
了解涉及pthreads的Linux调度
LinSched 2.6.35没有有效的结帐链接
无法理解这个LARGE_INTEGER行
题
为什么实验2的行为不如实验1?
Linux内核 – 我可以locking和解锁Spinlock在不同的function?
linux内核2.4.27中“Niceness”和“Goodness”的区别
Windows任务调度器和python日志logging模块
Linux内核:schedule()函数
Windows任务计划程序将只运行一次应用程序
您可能已启用自动组。
在这种情况下,在最高级别的实验2中,有两个控制组(每个会话一个)竞争cpu,并且在每个控制组内进程竞争cpu。
你可以看到当前的控制组和它的漂亮:
cat /proc/$$/autogroup
你可以用下面的方法来设置好:
echo 19 > /proc/$$/autogroup
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。