ネットワーク(RSHおよびSSH)を介してパイプラインパフォーマンスを最適化する方法

ネットワーク(RSHおよびSSH)を介してパイプラインパフォーマンスを最適化する方法

リモートシェル(RSH)を使用する従来のシステムでパイプネットワークを介したデータ転送を検討してください。たとえば、次のようになります。

rsh host -l user tar -cf - /home/dir \| compress | uncompress | tar -xvf -

そしてこれは「現代的な」システムでは:

ssh user@host tar -cf - /home/dir \| gzip | ungzip | tar -xvf -

パフォーマンスの問題:

AIX 4.3とAIX 5.3の間で転送を実行するためにRSHを使用すると、パフォーマンスが非常に低下します。アイドルスイッチを介して接続したアイドルカード(10/100)を使用しても、5.4GBを転送する約350Kbpsのパフォーマンスが得られました。

AIX 5.3とLinuxの間でこの転送を実行しますが、SSHとgzipを使用するとパフォーマンスははるかに向上しますが、ネットワーク容量には達しません(1ギガビットLANでは平均約400Mbpsを取得します)。

ネットワークパイプのパフォーマンス、カスタムパイプバッファ、ネットワークブロック/バッファなどを最適化する方法はありますか?

ベストアンサー1

少なくともSSH部分では、帯域幅が制限されるのではなく、CPUが制限されていると思います。

サーバーの暗号化/暗号化解除は制限要因であるため、2つのアイドルサーバー間でscp(ssh cp)を使用して約45〜50 MB / sを取得します。 gzip / ungzipを追加すると、利用可能なコアの数に応じて少なくなる可能性があります。

圧縮されていない転送と暗号化されていない転送の数が優れています。圧縮コマンドなしで試してみて、どのように進行しているかを確認できます。

おすすめ記事