Btrfs

nice 和 ionice:哪一個應該先來?

  • September 6, 2017

我需要執行一些冗長而繁重的命令,但同時我想讓我的桌面系統保持響應。範例: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 之間是否存在細微差別?它們可能等效嗎?

如果nice導致大量 I/O,你會想要做:

ionice -c 3 nice ...

從而將 I/O 的影響降到最低。

相反,如果ionice執行大量計算,你會想要做

nice -n 19 ionice ...

以盡量減少對 CPU 的影響。

但這些都不是真的,它們都是非常簡單的命令(它們只是進行系統呼叫以更改流程參數,然後執行命令)。所以差異應該可以忽略不計。

完整地說,如果兩者都是真的,你就不能真正贏——其中一個的影響不能減少。

引用自:https://unix.stackexchange.com/questions/390480