10Gb NICを搭載した2台のDebianサーバーよりも高速な再同期

10Gb NICを搭載した2台のDebianサーバーよりも高速な再同期

私は新しい debian/openmediavault サーバーでこの rsync コマンドを使用して、古いサーバーのすべてのデータをこのサーバーに移動しています。

rsync -hazP --stats -e "ssh -T -c [email protected] -o Compression=no -x" [email protected]:/srv/27829c9c-dbc1-4408-a111-56dbcd8f0ec0/media/ /srv/mergerfs/norman_pool2/media

どちらの場合も、データはUnionfsまたはmergefsプールにあります。 10.10.10.15はソースサーバー上のNICのIPであり、そのポートはDACケーブルを使用して新しいサーバーの10Gb NICに接続されるため、10Gbを介してのみ通信できる必要があります。唯一の他のインターフェイスはデフォルトの1Gb NICであり、それぞれ私のルーター/スイッチのラインがあります。

新しいサーバーは32GBのRAMを搭載したIntel I3 12100で、既存のサーバーはデュアルXeon L5664 CPUと32GBのRAMを搭載したDell R710です。どちらも処理中にCPU使用率とRAM使用率が低かったが、大きなファイルの場合は15MB/sを超え、小さいファイルの場合は5~10MBを超える速度は見られなかった。私が見た最高速度は18MB/sのようですが、これは直接10Gb接続に比べてとても遅いようです。

私が考えていないものや、コマンドを使ってスピードを上げることができるものはありますか?

ベストアンサー1

編集:ええと、何かをタールできるようにtarの引数を忘れました。

Rsyncは、特に一部のファイルのみが変更された場合(ログファイルの増加など)、リポジトリを更新するのに役立ちますが、ここではすべてをコピーしようとしています。

ソースコンピュータとターゲットコンピュータの両方でCPU使用率が低く、すべてのデータを移動する必要があるため、tarなどの簡単なツールを使用すると、わずかな改善が見られる場合があります。

ターゲットサーバーの~destuser/.ssh/authorized_keysにSSHキーがある場合は、単に次のようにします。

( cd /somesourcedir/ && tar czf - ./ ) | ( ssh destuser@destserver "cd /somedestdir/ && tar xzf -" )
# send the full content of /somesourcedir/ into /somedestdir/
# Do use `z` (gzip) option only if most of the data can easily be compressed.
# If most of the data is videos or jpegs or already compressed files, take out both z
# and it will be lighter on the cpu and maybe even a bit faster

そして中断しないでください...停止ポイントでtarを続行する方法がないので(特にここでリモートtarは別のプロセスにあります)...

これを破ると、不完全な可能性のある最後のファイルと次の不足しているファイルとディレクトリのみを送信する賢い方法を見つける必要があります。これには、シェルコマンドを賢く使用することが含まれます...またはrsyncを使用して操作を再実行します。完了?

通常のsshに注意し、特に圧縮を追加しないでください。特に、端末エミュレーションを提供するために-t(またはその変形)を使用しないでください。 tar出力を混乱させ、リモートファイルを修正します。

処理速度に関する情報を得るために|代わりに| pv |を追加することもできます(pvは:パイプビューア)...しかし、単純なMB / s情報を表示するpvオプションは覚えていません。 (iirc、送信されると予想される全体のサイズがわかっている場合は、オプションを使用してこれを提供できますが、tarsにzオプションがある場合は情報が大きく異なります)

おすすめ記事