dd over sshは、ネットワーク帯域幅を超える読み取り速度をどのように報告しますか?

dd over sshは、ネットワーク帯域幅を超える読み取り速度をどのように報告しますか?

削除されたサーバーの接続をテストするには、次のコマンドを実行します。

ssh -l user $IP "dd if=/dev/zero count=3500 bs=1M status=progress" > /dev/null

これはフォームの進捗レポートを示しています。

3145728000 bytes (3,1 GB, 2,9 GiB) copied, 276,047 s, 11,4 MB/s

dd読み取り速度は毎秒11MBのようです。しかし、ネットワーク帯域幅は約20mbit未満に制限されることが知られているので、これは実際に受信されるデータ量ではない可能性が高い。

iftop受信システムに表示されるスループットは約300kbitであり、これは可能なものよりはるかに少ないがより現実的である。

質問:ddSSH接続を介して配管するときの進行状況は実際に何を意味しますか?受信側が追いつくことができない場合、データは失われますか?どうしたの?

答え1

SSHは圧縮プロトコルで実行でき、結果に応じてデプロイまたは構成でデフォルトで有効になっています(または使用していますssh -C)。したがって、読んだ内容によれば、ゼロストリームは圧縮率が約300のよりコンパクトなものでよく圧縮されます。最終結果は元のサイズの約0.3%です。したがって、受信機で膨大な結果を生成するには少量のネットワーク帯域幅しか必要とされないため、ネットワーク速度をテストするための最良の選択ではありません。

-o Compression=noコマンドラインから要求に応じて圧縮を解除するか、Compression noSSHクライアント構成で指定して接続の圧縮を永久に解除できます。

別のオプションは、より基本的なものを使用することです。たとえば、netcat圧縮、認証、または同様の機能は実装されていませんが、このため、実際のファイル転送には通常推奨されません。

関連情報