web-dev-qa-db-ja.com

ギガビット接続では、Teracopyは31MB / sを実行しますが、Windows 8は毎秒約109MBで実行しますか?

本日、2011年のMacMiniとWindows 8 ProデスクトップをCat.5e経由でLinksys WRT320N(スポーツdd-WRT)に接続して、ギガビットネットワーキングを初めて解き放ちました。

両方のシステムの回線速度が1Gbpsであることを確認した後、2.4GB MP4をMiniからWin 8デスクトップ(SMB共有)にコピーしました。 Teracopyが示していた30〜34 MB /秒(これは、10 MB /秒からの適切なステップアップでした)には満足しましたが、このアドバタイズされた速度と実際の速度の大きな違いにまだ興味がありました。

2時間のGoogleで、速度が低下する他の要因があると信じていましたSMBが1つであること。それを行うためだけに、私はiPerfでシステムとそれは示した-両方のシステムで約875mbps!

次に、偶然に遭遇しました この小さな情報 その後、Teracopyをオフにして、Windows 8の通常のコピー機で同じファイルをコピーしました。 109 MB /秒。溶けた脳:)

これを正確に引き起こしているのは何ですか?また、Teracopyでこのような速度を有効にできますか?私はTeracopyが持っている追加機能を本当に掘り下げます、確かに今すぐそれらを見逃します:D

13
Gaurang

ギガビット接続では、Teracopyは31MB/sを実行しますが、Windows 8は毎秒約109MBで実行しますか?

これを正確に引き起こしているのは何ですか?また、Teracopyでこのような速度を有効にできますか?私はTeracopyが持っている追加機能を本当に掘り下げます、確かに今すぐそれらを見逃します:D

2つの単語:verificationおよびcache

技術説明

これは、Windowsエクスプローラでファイルをコピーするための一般的な手順です。

  1. ソースドライブからメモリにデータのチャンクを読み取る
  2. システムを介してチャンクを送信します
  3. チャンクを宛先ドライブに書き込みます
  4. まだ完了していない場合は、手順1に戻ります

これは単純で十分に短いようです。この転送アルゴリズムでは、ファイルの各バイトが2回だけ処理されます。1回は読み取り、1回は書き込みです。

しかし、それに加えて、Windowsは(ドライブ自体と同様に)メモリを使用して一部のデータをキャッシュします。したがって、前のチャンクが書き込まれるのを待つのではなく、次に次のチャンクを読み取る代わりに、新しいチャンクを読み取ることができますwhile前のチャンクはまだ書き込まれています。明らかにこれは永遠に持ちこたえることはできませんが、Windowsは、メモリに読み込まれているファイルのすべてではないにしても、ほとんどを保存するために、残りのすべての空きメモリを一時バッファとして使い切る可能性があります。

大きなファイル(または多くのファイルを含むフォルダー)を1つのドライブから別のドライブにコピーし、すぐに2つを比較することで、キャッシュの動作を確認できます。比較はmuchファイルがまだメモリ内にあるため、後で実行する場合よりも高速であり、実際にはドライブからファイルを読み取っていません。

メモリは非常に高速であり、読み取り速度は書き込み速度よりも少し速い傾向があるため、最終的な転送速度は宛先ドライブの書き込み速度によってのみ制限されます。

Teracopyは、ファイル転送を遅くする2つのことを実行できますが、エクスプローラーでは実行できません。

  • キャッシュを破棄してドライブから直接読み取る

  • 宛先が正しく記述されていることを確認してください

転送中に基本的なエラーのみをチェックするエクスプローラーとは異なり、Teracopyは転送メディア(ネットワーク/ドライブケーブルなど)の問題により発生する可能性のあるデータの破損を防ぐために、データが宛先ドライブに正しく書き込まれたことを実際に確認できます。 )またはドライブ自体(不良セクターなど)これを行うと、元のファイルと比較するためにファイル宛先からを読み取る必要があります。

使用されているアルゴリズムとファイルのサイズに応じて、検証を最適化することができます(ただし、それ以上)threeエクスプローラーの2つとは対照的に、各ファイル/ファイルチャンクのドライブ操作:ソースからのファイル、宛先へのファイルの書き込み、および宛先からのファイルの読み取り。

Teracopy(HDDに最適化されたアルゴリズムを使用)でファイルをコピーするとどうなるかを見てください。

  1. ソースドライブからチャンクを読み取る
  2. ソースドライブから読み取ったチャンクをハッシュする
  3. システムを介してチャンクを送信します
  4. それを宛先ドライブに書き込みます
  5. キャッシュをクリアする
  6. 宛先ドライブからチャンクを読み戻す
  7. 宛先ドライブからチャンクをハッシュする
  8. ハッシュを比較する
  9. 次のステップを決定する
    • ハッシュが一致しない場合は、エラーを表示し、ユーザーにアクションを要求する
    • ハッシュが一致し、完了していない場合は、ステップ1に戻ります

問題は、転送中にファイルをキャッシュすると、宛先ドライブ上の実際のデータを読み取っていないため、比較が役に立たなくなり、メモリにキャッシュされているコピーをソースから読み取っているということです。したがって、適切に検証するには、キャッシュをクリアする必要があります。これは、読み取りと書き込みのたびに行うことができます(これは、重要なサイズのファイルに対して無数の回数の処理が行われることになる余分な操作です)、または一度だけafterファイル全体が転送されました。

以下のスクリーンショットによると、TeraCopyは検証を実行しますafterファイルは転送中ではなく転送されます。つまり、代わりにこのCPU/RAM最適化転送アルゴリズムを使用します。

  1. ソースドライブからチャンクを読み取る
  2. システムを介してチャンクを送信します
  3. それを宛先ドライブに書き込みます
  4. まだ完了していない場合は、手順1に戻ります
  5. コピーが完了したため、キャッシュをクリアして検証しています
  6. ソースドライブからチャンクを読み取る
  7. 宛先ドライブからチャンクをハッシュする
  8. 宛先ドライブからチャンクを読み取る
  9. 宛先ドライブからチャンクをハッシュする
  10. ハッシュを比較する
  11. 次のステップを決定する
    • ハッシュが一致しない場合は、エラーを表示し、ユーザーにアクションを要求する
    • ハッシュが一致し、終了していない場合は、ステップ6に戻ります。

このアルゴリズムはCPUとRAMに少し負担をかけますが、各ファイルを処理する必要があるため、ドライブにかなりの負担をかけますfour回:からファイル全体を読み取りますソース、それを宛先に書き込んでから、ソースから再度読み取り、宛先から再度読み取ります。

(TeraCopyがネットワーク転送用に最適化されている場合、検証のためにファイル全体を2回送信することを回避し、はるかに小さいハッシュのみを送信することができますが、現在はそうではなく、ネットワークドライバーは同じように扱われます。ローカルドライブとして、実際にソースを再読み込みします。)

デフォルトでは、TeraCopyはキャッシュを検証または使用しません。検証しないと転送速度が上がります(正確には遅くない遅くなります)が、キャッシュを使用しないと遅くなる遅くなります。

応用

特定の速度結果を決定するには、設定をチェックして、変更したかどうかを確認する必要があります。次に、さまざまな設定でどのような速度が得られるかを概算することができます(相互に影響する可能性が高いので、単純に加算または減算することではありません)。

それでは、数値を使って簡単な計算をしてみましょう。

  • ローカルファイル転送:875Mbps(つまり、ドライブ速度)
  • ネットワーク速度:1Gbps = 119.21 MBps
  • Windowsエクスプローラーからのコピー:109MBps
  • TeraCopyによるコピー:34MBps

すぐに、Explorerのファイル転送がネットワークスループットをほぼ最大にしていることがわかります。 1Gbpsリンクは1,000,000,000 ビット /秒に相当します バイナリユニットバイトの単位は119MBpsです。 Explorerは109MBpsと残りの10MBpsを計時しています(これは以前のmax:^Þ)は、オーバーヘッド、バックグラウンドロード、および断片化によって簡単に説明できます。

(転送速度はネットワーク速度とほぼ等しいため、エクスプローラーのファイル転送は一方向であり、各ファイルのコピーが1つだけ送信されていると推測できます。)エクスプローラーは、ファイルごとに2つのファイルアクセスに対して110MBpsを取得します。

次にTeraCopyを使用します。 TeraCopyはExplorerの速度のほぼ正確に3分の1に達しているようです。

設定ダイアログが使用するアルゴリズムを正確に示しているかどうかに応じて、TeraCopyは実際にソースファイル全体を2回送信して、コピーをチェックできるようにします。これにより、スループットが半分になります。キャッシュがオンの場合、新しいチャンクを送信する前に書き込みが完了するのを待つ必要があるため、速度も低下します。検証と組み合わせると、さらに倒すことができます。

検証をオンにしてキャッシュをオフにしている場合、34MBpsの転送速度は妥当なようです。検証をオフにしてキャッシュをオンにすると、エクスプローラーとほぼ同じになるはずです(TeraCopyが使用するファイル転送コードと、エクスプローラーが使用するコードとの違いによっては、わずかに少なくなったり、さらに多くなったりする場合があります)。

10 GB近くを転送する気がある場合は、設定を変更して4つの順列のそれぞれについて転送をやり直し、速度を書き留めることもできます(安全のために、キャッシュが実行間でオフ:V+C+, V+C-, V-C+, V-C-)。


Screenshot of TeraCopy preferences dialog with default settings
16
Synetech

これは、Windows 8がSMB v。3を使用しており、テラコピーがSMB v.3と互換性があり、デフォルトでSMB 2.推測...

1
MDT Guy

私はあなたの問題に対する100%の答えを与えることはできませんが、役立つかもしれないさらに追加することができます。
Teracopyに切り替える理由は、Windowsが何かを実行する前にすべてを「計算」する方法にあり、この計算自体がプロセス全体をフリーズさせることがあります。他の投稿では、Windowsコピーでコピーされるファイルの種類が重要であることが提起されました。Teracopyでは、そのことを確認したことがないので、確かには言えません。しかし、私自身の試みは、これまでのところ、あなたがどんなイベントで得るよりも少ないものを私に残しました。メディア(つまり、写真/映画)ファイルではなく、一般的なファイルタイプをコピーしています。

私のテストは、Seagate 3TB NAS with GB NIC 100%GBネットワーク上のGBシステムへのアクセスです。ベストケースは14 Gbpsです。WindowsはNASシステムHDの場合、12.4GBpsになり、起動に少し時間がかかりました。109Mb/ sのように、30-34Mbpsに近いものはありませんでした。

これの一部は、GBネットワークでもNASのフロー制御によるものです。 34GB /秒が得られれば非常に嬉しく、109GB /秒が得られればさらに幸せです。より高速なファイルコピー機を見つけたら、投稿してください! :)

0
user1376156

これ IntelマザーボードのチップセットNIC間でこの問題を解決しました。

2003年にTOE(TCPオフロードエンジン)がWindowsに導入され、当時、ほとんどのサーバーで使用されているBroadcom NICからの恐ろしい結果により、チェックサムを「オフロード」するとデータが破損しました。 NICベンダーはまだそれを正しく持っておらず、Broadcomだけではありません。ネットワークのオフロードはほとんど常に遅く、明らかにエラーが発生しやすく、すべてソフトウェアで実行します。私はあなたのアダプター設定に入り、あらゆる種類のハードウェアオフロードをすべて無効にします。

0
glugglug

以前は、TeraCopy経由の転送が遅いという同じ問題がありました。 Realtekギガビット8111C内蔵LANカードを搭載したCeleron J1800。毎秒35〜45メガバイトしか得られませんでした。かなりイライラ!

最終的には悪いlanカードドライバーになりました。

OEMドライバーを使用してWindowsを最初からインストールしました。同様に私は次のことをしました:

[デバイスマネージャー]、[Lanカード]、[詳細設定]、[フローコントロール以外のすべてを無効にする]の下。

Windowsの機能の下で、リモート差分圧縮を無効にします。

現在、平均速度は60〜70 Mbpsです

enter image description here

0
Gi Cakov