web-dev-qa-db-ja.com

ネットワークファイルのコピー速度が変動するのはなぜですか?

Windows 10にアップグレードすると、ファイルをコピーするときにこの素晴らしいグラフが表示されます。

単一の大きなファイルをコピーすると、速度は常にこの合理的に一貫した波形になります。何が原因ですか?

接続は

My PC <- cable -> gigabit switch <- cable -> Netgear ReadyNAS

ファイルはSMBを介してコピーしています。このグラフは、そのようなコピーの1分を示しています。

Graph of copy speed from Windows 10

ここでは問題ありません。物事の仕組みを理解したいだけです。

17
Gricey

短い答え:書き込みキャッシュ

TL; DR:まず、単一の大きなファイルをコピーする場合、多くの小さなファイルと比較してオーバーヘッドがはるかに少なくなります。つまり、PCとNASは、ファイルのシーク、ファイルテーブルとファイルシステムのメタデータの更新に「無駄な時間」をかけていません。これは、スループットが大幅に向上し、帯域幅の一部が明らかになる可能性があるセットアップのボトルネック。

帯域幅グラフの山と谷はかなり規則的な間隔で発生しているように見え、単一の大きなファイル(最大帯域幅、最小オーバーヘッド)をコピーしているという事実を考えると、バッファリング/キャッシングの効果を見ていると思います。

おそらくあなたはNASにデータをそれがディスクに書き込むことができるよりも速い速度で送信しているようです。書き込みキャッシュ/バッファのおかげで、それはまだそれを受け取ることができますより速いレート(グラフのピーク)ですが、ディスクにコミットせずにデータを受信し続けることはできません。

最終的にはバッファがいっぱいになり、ディスクに書き込む必要があります。一方、NASは、データを格納する場所がないため(バッファがいっぱいで、ディスクが遅いため)、以前のように高速にデータを受信できません。これは、グラフの谷を取得する場所です。 。

Windowsがスループットのグラフを滑らかにしているようです。より正確なグラフ(パフォーマンスモニターなど)を使用すると、間隔と転送されたバイト数を分析することで、書き込みバッファーのサイズを実際に見積もることができます。

山と谷が完全に均一な間隔で発生しない理由は、おそらく、ファイルのコピー中にPC NASまたはその両方)が「何か他のこと」を行っているためです。

6
abstrask

詳細な調査を行わずに信頼できる回答をするのは困難です。時間スケールとプロトコルで質問を更新していただきありがとうございます。

通常のTCP "ホタテ"。 TCPは、パケット損失が発生するまで可能な限り高速になります。その後、少し後退し、再び増加します。したがって、「頭を天井にぶつけて」いきます。これは、輻輳を悪化させることなく、利用可能な帯域幅を最大化する方法です。私は通常、TCPTraceグラフでTCPスカロップを調べます。これは、このグラフとは少し異なります。この種類のグラフでは、もう少し鋸歯状に見えると思いますが、このグラフでは平滑化が行われている可能性があります。そして私がそれについて考えた今、TCPホタテ貝は、このグラフが示すように見えるよりもはるかに小さなタイムスケールにあるでしょう。

また、リモートファイルシステムプロトコル(SMB)が一度にファイルをチャンクで読み取り、ディップで1つのチャンクの読み取りが完了し、次のチャンクが要求されている場合もあります。

17
Spiff

Microsoft はこの機能を Windows 8のプログレスバーに導入したと思います。

Left to Right 進行状況をパーセンテージで表示 Up-Down モーションは MB/s の転送速度。

転送速度は、メディアの速度(バスまたはネットワーク)、ファイルの数とサイズ、ファイルシステムとリソースの可用性などによって決まります。

また、ファイル転送中に、メタデータの多くの読み取り/書き込みが行われます。

このメタデータの読み取り/書き込みオーバーヘッドが削減され、他のリソースが同じ速度で使用されているため、かなり一貫したウェーブが見られます。ときどきディップは、パケット損失、次のチャンクの読み取り、リソースポーリングなどのイベントである可能性があります。

詳細については、こちらをご覧ください。

0
pun