微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

了解renice

我试图用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] 举报,一经查实,本站将立刻删除。

相关推荐