Btrfs
nice 和 ionice:哪一個應該先來?
我需要執行一些冗長而繁重的命令,但同時我想讓我的桌面系統保持響應。範例: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 之間是否存在細微差別?它們可能等效嗎?
如果
nice
導致大量 I/O,你會想要做:ionice -c 3 nice ...
從而將 I/O 的影響降到最低。
相反,如果
ionice
執行大量計算,你會想要做nice -n 19 ionice ...
以盡量減少對 CPU 的影響。
但這些都不是真的,它們都是非常簡單的命令(它們只是進行系統呼叫以更改流程參數,然後執行命令)。所以差異應該可以忽略不計。
完整地說,如果兩者都是真的,你就不能真正贏——其中一個的影響不能減少。