gpt4 book ai didi

linux - 了解 renice

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:48 26 4
gpt4 key购买 nike

我试图通过 renice 19 (Linux 3.11) 为受 CPU 限制的应用程序提供最低的调度优先级。但是,它似乎没有按预期工作,或者我有理解问题。

让我描述一下我尝试过的两种方法。我希望以两种方式得到相同的结果,但我没有。将应用程序 loop 视为一个繁忙的循环: int main() { for(;;) ;返回 0;

实验一

  • 打开终端
  • 运行 ./loop & 的次数与 CPU 的次数相同(例如,我有 4 个 CPU)。
  • 再运行一个 loop 实例,并将其重新调整为 19

结果如预期。非 reniced loop 实例每个都有几乎 100% 的 CPU,而 reniced 实例大约有 1%。

实验二

  • 打开两个终端
  • 终端 1:运行 ./loop & 与 CPU 一样多的次数。
  • 终端 2:运行 loop 的另一个实例并将其重新设置为 19

结果与预期不符。在终端 2 中启动的 loop 实例拥有 100%(尽管 niceness 为 19),而在终端 1 中的 loop 实例共享剩余的资源。

问题

为什么实验 2 的行为与实验 1 不同?

最佳答案

您可能启用了自动分组。

在那种情况下,在顶层的实验 2 中,您有 2 个控制组(每个 session 一个)竞争 CPU,并且在每个控制组内进程竞争 CPU。

您可以通过以下方式查看当前的控制组及其优劣:

cat /proc/$$/autogroup

你可以通过以下方式设置 niceness:

echo 19 > /proc/$$/autogroup

关于linux - 了解 renice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22090126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com