Nice 和 ionice:哪个应该放在第一位?

Nice 和 ionice:哪个应该放在第一位?

我需要运行一些又长又繁重的命令,但同时我希望保持桌面系统的响应能力。

例如:btrfs 重复数据删除、btrfs 平衡等。如果我给它们较低的优先级,我不介意这些命令是否需要更长的时间才能完成,但我的系统应该始终响应。

使用nice -n 19andionice -c 3应该可以解决我的问题,但我不确定哪个命令应该首先出现以获得最大的好处。

  • 选项A:

    nice -n 19 ionice -c 3 btrfs balance start --full-balance /
    
  • 选项B:

    ionice -c 3 nice -n 19 btrfs balance start --full-balance /
    

选项 A 和 B 之间有一些细微的差别吗?它们也许是等价的吗?

答案1

如果nice导致大量 I/O,您可能需要执行以下操作:

ionice -c 3 nice ...

以便将 I/O 的影响降至最低。

相反,如果ionice执行大量计算,您会想要这样做

nice -n 19 ionice ...

以尽量减少对 CPU 的影响。

但这些都不是真的,它们都是非常简单的命令(它们只是进行系统调用来更改进程参数,然后执行命令)。所以差异应该可以忽略不计。

完整地说,如果两者都是真的,你就无法真正获胜——其中之一的影响无法减少。

答案2

选项 A 和选项 B 之间没有实际差异。

相关内容