我需要运行一些长而繁重的命令,但同时我想让我的桌面系统保持响应。示例:btrfs 重复数据删除、btrfs balance 等。如果我给它们较低的优先级,我不介意这些命令是否需要更长的时间才能完成,但我的系统应该始终响应。使用nice -n 19并且ionice -c 3应该可以解决我的问题,但我不确定哪个命令应该首先出现以获得最大收益。
选项A:
# nice -n 19 ionice -c 3 btrfs balance start --full-balance /
Run Code Online (Sandbox Code Playgroud)
选项 B:
# ionice -c 3 nice -n 19 btrfs balance start --full-balance /
Run Code Online (Sandbox Code Playgroud)
选项 A 和选项 B 之间是否存在细微差别?它们可能是等价的吗?
Bar*_*mar 19
如果nice导致大量 I/O,您可能需要执行以下操作:
ionice -c 3 nice ...
Run Code Online (Sandbox Code Playgroud)
从而将 I/O 的影响降至最低。
相反,如果ionice执行大量计算,你会想要做
nice -n 19 ionice ...
Run Code Online (Sandbox Code Playgroud)
以尽量减少其对 CPU 的影响。
但这些都不是真的,它们都是非常简单的命令(它们只是进行系统调用以更改进程参数,然后执行命令)。所以差异应该可以忽略不计。
只是为了完整,如果两者都是真的,你就不能真正赢——其中之一的影响无法减少。
| 归档时间: |
|
| 查看次数: |
5364 次 |
| 最近记录: |