tar
バックアップ用にマシンを使用しています。ただし、これは多くのI / Oを使用し、システム全体の速度を低下させます。
それでは制限する方法はありませんか?読むスピードtar
?
わかりましたpv
。しかし限界があるだけです書くスピード。増分バックアップを実行しているため、tar --listed-incremental
この方法は最初のフルバックアップでのみ機能します(小さな変更がある場合は、後続の増分バックアップでは多くの読み取りI / Oを消費します)。
nice
バックアップの全体的な優先順位を下げるためにとの組み合わせを試しましたが、ionice
実際には何も変わりませんでした。
情報:Debian 9システムで、ファイルはLVMボリュームの上部にあるext4ファイルシステムにあります。
答え1
run tarコマンドを使用できますionice
。このように:
ionice -c3 tar --listed-incremental [...]
tar
これにより、他のプロセスがI / Oを待っていない場合にのみ、そのプロセスがI / Oを実行します。
Debian では、このionice
ユーティリティはパッケージに含まれているので、最初にインストールする必要があるutil-linux
かもしれません。
一般(CPU)nice
ユーティリティと同様に、プロセスのI / Oスケジューラクラスはその子プロセスに継承されます。リソースを多用するタスクを計画するとき、ユーザーのI / O速度が遅くなることは望ましくありません。私はしばしば次のようにシェルを起動します。
nice ionice -c3 bash
これにより、そのシェルで実行するすべての作業が本当にうまく機能します。 :)
答え2
cgroupの使用
mkdir -p /sys/fs/cgroup/blkio/g1
echo "8:0 1048576" > /sys/fs/cgroup/blkio/g1/blkio.throttle.read_bps_device
pgrep -f tar > /sys/fs/cgroup/blkio/g1/cgroup.procs