私はtar
を使用しています。マシンのバックアップを作成します。ただし、多くのI/Oを使用しており、マシン全体の速度が低下します。
それで、readtar
の速度を制限する方法はありますか?
pv
については知っていますが、制限されるのは書き込み速度だけです。 tar --listed-incremental
を使用して増分バックアップを実行するため、これは最初の完全バックアップでのみ機能します(その後の増分バックアップでは、わずかな変更しかない場合、大量の読み取りI/Oが消費されます)。
Nice
とionice
を組み合わせてバックアップの全体的な優先度を下げようとしましたが、実際には何も変わりません。
情報:Debian 9マシンであり、ファイルはLVMボリューム上のext4ファイルシステム上にあります。
ionice
を使用してtarコマンドを実行できます。このような:
ionice -c3 tar --listed-incremental [...]
これにより、tar
プロセスはI/Oを待機している他のプロセスがない場合にのみI/Oを実行できるようになります。
Debianでは、ionice
ユーティリティはパッケージutil-linux
に含まれているため、最初にインストールする必要があるかもしれません。
通常の(cpu)Nice
ユーティリティと同様に、プロセスのI/Oスケジューラクラスはその子プロセスに継承されます。リソースを大量に消費する作業を計画している場合、そのためにユーザーのI/Oが遅くなることは望ましくありません。私はよくこの方法でシェルを開始します:
Nice ionice -c3 bash
そうすれば、そのシェルから私がすることはすべてとてもとても素敵になります:)
Cgroupsを使用する
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