タール読み取り速度制限

タール読み取り速度制限

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

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

関連情報