Rsyncがシステムとネットワークを枯渇させることを回避するために、rsyncの起動時にionice
を使用し、--bwlimit
パラメータを設定します。例えば:
ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo [email protected]:/
これは、ソースサーバーの応答性を維持するのに役立ちます。ただし、(atop
ユーティリティで確認できるように)ディスクIOが100%であるため、宛先サーバーが非常に遅くなります。
宛先サーバーでもionice
を使用することは可能ですか?おそらく、rsync -e
オプションを使用しますか?可能であれば、rsyncデーモンを実行したくない。
Riceコマンドを変更するか、シェルスクリプトでラップして、ioniceコマンド/パラメーターを含めることはオプションです。また、--rsync-path
オプション。これは、リモートサーバーで実行するコマンドをrsyncに指示します。何かのようなもの --rsync-path="ionice -c2 -n7 rsync"
は、iceiceが宛先で実行されるようにします。
サーバーの設定によっては、ioniceが必ずしも効果的ではないことを付け加えます。 デフォルトのCFQ I/Oエレベーター でのみ機能します。ストレージシステムの調整を行った場合、このアプローチは適用できない場合があります。
負荷の例を示したり、コピー中にシステムがリソース用に開始された方法の説明を助けたりできますか?私はより深く掘り下げて、rsync、特にあなたの例に挙げた低いレートに制限されていることがなぜ多くの問題を引き起こすのかを見る傾向があります。
何をコピーしていますか?ハードウェア/ OSセットアップとは何ですか?
Rsyncコマンドは、リモートの宛先でもrsync
コマンドを起動します。
次のものを移行先サーバーのルートユーザー.bashrcに、つまり/root/.bashrc
alias rsync="ionice -c2 -n7 rsync"