我需要运行一些又长又繁重的命令,但同时我希望保持桌面系统的响应能力。
例如:btrfs 重复数据删除、btrfs 平衡等。如果我给它们较低的优先级,我不介意这些命令是否需要更长的时间才能完成,但我的系统应该始终响应。
使用nice -n 19
andionice -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 之间没有实际差异。