web-dev-qa-db-ja.com

タール読み取り速度を制限する

私はtarを使用しています。マシンのバックアップを作成します。ただし、多くのI/Oを使用しており、マシン全体の速度が低下します。

それで、readtarの速度を制限する方法はありますか?

pvについては知っていますが、制限されるのは書き込み速度だけです。 tar --listed-incrementalを使用して増分バックアップを実行するため、これは最初の完全バックアップでのみ機能します(その後の増分バックアップでは、わずかな変更しかない場合、大量の読み取りI/Oが消費されます)。

Niceioniceを組み合わせてバックアップの全体的な優先度を下げようとしましたが、実際には何も変わりません。

情報:Debian 9マシンであり、ファイルはLVMボリューム上のext4ファイルシステム上にあります。

5
Zoddo

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

そうすれば、そのシェルから私がすることはすべてとてもとても素敵になります:)

1
Hkoof

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

https://andrestc.com/post/cgroups-io/

0
user1133275