mvが必要な大容量ファイルがありますが、Nice -n19を使用してもサーバーのパフォーマンスに影響を与えるようです。
1つのオプションは、プロセスを「チャンク」単位で実行することです。つまり、数秒間コマンドを実行してから数秒間スリープ状態にしてから、プロセスを再起動します。
コマンドラインでこれを行う方法や、より良い選択肢がありますか?現在のCtrl Zとfgを手動で実行します。
答え1
mv
I / Oボトルネックは通常、多くのCPUサイクルを必要としないため、(暗号化/暗号解読が含まれていない限り)パフォーマンスに影響を与える可能性があります。nice
ジョブがCPUで実行されるように、ジョブリストのジョブのスケジュール優先順位を変更します。
nice
だから試してはいけません(カーネル> 2.6.25の場合)。
ionice -c3 mv <src> <dest>
~からionice -h
ionice [options] <command>
-c, --class <class> name or number of scheduling class,
0: none, 1: realtime, 2: best-effort, 3: idle
~からman ionice
Idle A program running with idle I/O priority will only get disk time
when no other program has asked for disk I/O for a defined grace
period. The impact of an idle I/O process on normal system activity
should be zero.
答え2
それは次のとおりです。
$command & pid=$!
while kill -STP -$pid && sleep $interval && kill -CONT -$pid && sleep $interval; do :; done
これを行うことができます。
ジョブ制御は実際にこれら2つの信号(SIGSTPとSIGCONT)を送信するため、これは基本的に手動で実行されるジョブ制御です。