2台のデスクトップコンピューターが互いに直接通信しています。どちらもギガビットイーサネット対応のネットワークアダプターを備えています。それは1 Gbpsまたは1000 Mbpsです。新品の10メートルのCat6 UTP ストレートケーブルで接続し、理論上の最大値にかなり近づきます。Windowsタスクマネージャー([ネットワーク]タブ)には、一方向に844〜946 Mbpsが表示されます。しかし、他の方向では、約326〜365 Mbpsしか表示されません。
Local: 192.168.100.152
Remote: 192.168.100.151
ローカルコンピューターはWindows 8.1 Proを実行し、Windows Vista Ultimateを実行する他のコンピューターにリモートで接続しています。
Iperfの結果
Iperfを使用してテストを行いました。毎回60秒間テストを実行しました。コミュニケーションの方向ごとにテストを10回実行しました。次に、この表とテスト結果をまとめて平均値を取得しました。
192.168.100.152 -> 192.168.100.151 106 MB/s
192.168.100.152 -> 192.168.100.151 107 MB/s
192.168.100.152 -> 192.168.100.151 108 MB/s
192.168.100.152 -> 192.168.100.151 107 MB/s
192.168.100.152 -> 192.168.100.151 107 MB/s
192.168.100.152 -> 192.168.100.151 104 MB/s
192.168.100.152 -> 192.168.100.151 101 MB/s
192.168.100.152 -> 192.168.100.151 108 MB/s
192.168.100.152 -> 192.168.100.151 108 MB/s
192.168.100.152 -> 192.168.100.151 108 MB/s
----------------------------------------------------
Min: 101 MB/s Max: 108 MB/s Avg: 106.4 MB/s (851.2 Mbps)
192.168.100.152 <- 192.168.100.151 41.1 MB/s
192.168.100.152 <- 192.168.100.151 41.1 MB/s
192.168.100.152 <- 192.168.100.151 41.1 MB/s
192.168.100.152 <- 192.168.100.151 41.0 MB/s
192.168.100.152 <- 192.168.100.151 41.0 MB/s
192.168.100.152 <- 192.168.100.151 41.1 MB/s
192.168.100.152 <- 192.168.100.151 41.0 MB/s
192.168.100.152 <- 192.168.100.151 41.1 MB/s
192.168.100.152 <- 192.168.100.151 41.1 MB/s
192.168.100.152 <- 192.168.100.151 41.1 MB/s
-----------------------------------------------------
Min: 41.0 MB/s Max: 41.1 MB/s Avg: 41.07 MB/s (328.56 Mbps)
私の質問は、なぜ他の方向にそんなに遅いのですか?
ウィンドウズタスクマネージャー
これは、Iperfでテストを実行しているときに見られるネットワーク図です。
次の2つのスクリーンショットの図に注意してください!
データの送信から受信に切り替えたときに、右上隅の「1 Gbps」から「500 Mbps」にどのように変化したか気づきましたか。なぜそれをしたのですか?何らかの方法で他のネットワークポートを1 Gbpsの半分として検出しますが、逆方向に移動するとフルになりますか?
ファイル転送テスト
より現実的なディスク間読み取り値を取得するために、データファイルを使用してさらにテストを行いました。この目的のために1 GBのファイルを作成しました。デフォルトのWindowsファイル共有機能のみを使用しました。ローカルコンピューターから、リモートコンピューターのC $共有に接続し、ファイルを前後にドラッグアンドドロップ(ロープスキップ)し、そのたびにファイル名を変更しました。私は自分の能力を最大限に活用してすべての時間を計りました。
192.168.100.152 -> 192.168.0.151 1073741824 Byte 25 s 40,96 MB/s
192.168.100.152 -> 192.168.0.151 1073741824 Byte 20 s 51.2 MB/s
192.168.100.152 -> 192.168.0.151 1073741824 Byte 16 s 64 MB/s
192.168.100.152 -> 192.168.0.151 1073741824 Byte 16 s 64 MB/s
192.168.100.152 <- 192.168.0.151 1073741824 Byte 11 s 93.091 MB/s
192.168.100.152 <- 192.168.0.151 1073741824 Byte 34 s 30.118 MB/s
192.168.100.152 <- 192.168.0.151 1073741824 Byte 11 s 93.091 MB/s
192.168.100.152 <- 192.168.0.151 1073741824 Byte 11 s 93.091 MB/s
Windowsファイルコピー図で示されるスループットは、別の物語を伝えています。ここでは、同じディスクの2つの異なる場所に2つのファイルを順番にダウンロードしています。最初のコピーは107 MB / sが最大41%持続することを示し、2番目のコピーは98.9 MB / sが最大87%持続することを示しました。
これは、Iperfツールで得た結果と一致しています。さて、リモートコンピューターにアップロードすると、次のようになります。
最大73%の103 MB / sを維持し、82%で27.3 MB / sの悪臭を放ち、93%で49.1 MB / sに達するまでノッチを上げます。
ここに、さらに2つの面白い見た目の「ジェットコースター」図を示します。
更新1-リンク速度
リモートコンピューターのWifiアダプターを無効にしてみました。(ローカルコンピューターでWifiアダプターは既に無効になっています。)これが、Timtechがそのコメントで意味したことだと思います。私は同じ考えを持っていました-有線と無線の両方のアダプターを同時に有効にすると、有線アダプターのスループットがWifiアダプターのレベルに制限されました(互換性のために最も遅いアダプターに適応します)。通常、Wifiアダプター(この場合はDWA-160ワイヤレスN)は、Vistaコンピューターによって「52 Mbps」-「104 Mbps」リンクとして検出されます。
次のスクリーンショットでは、リモートコンピューターがサーバーとしてセットアップされ、ローカルコンピューターがクライアントとしてセットアップされています(192.168.100.152 <-192.168.100.151)。
しかし、リモートコンピューターのWifiアダプターを切断しても、有線接続のスループットが低下することはありませんでした。
それだけでなく!リモートコンピューター上のWindowsタスクマネージャーで、有線アダプター(LAN 1)のリンク速度が「1 Gbps」として表示されます。上記のスクリーンショットを参照すると、ローカルコンピューターで「500 Gbps」リンクとして検出されていることがわかります。したがって、同じ有線接続の場合、Windows Vistaは1 Gbpsリンクであると言いますが、同時にWindows 8.1 Proは500 Gbpsリンクだと言います。
リモートコンピューターでクライアントとして設定し、ローカルコンピューターをサーバーとして設定したときの様子は次のとおりです(192.168.100.152-> 192.168.100.151)。
ここでわかるように、1 Gbpsリンクの約95%が使用されています。これは950 Mbpsに変換されます。それはまさに上記のテストで得たものです。しかし、その逆はまったく別の話です。
更新2-二重化とMDI-X
いくつかの人から示唆されているように、私は二重設定を見ました。下のスクリーンショットでわかるように、ローカルコンピューターとリモートコンピューターの両方が自動ネゴシエーションモードに設定されています。
両方のコンピューターで「1.0 Gbps全二重」に変更してみました。その後、Iperfを使用して、以前と同じタイプのテストを行いました。ローカルコンピューターをサーバーとして、リモートコンピューターをクライアントとして使用すると、最大で約950 Mbpsになります。ローカルコンピューターをクライアントとして使用し、リモートコンピューターをサーバーとして使用すると、約360 Mbpsになります。
ここで、これらのスクリーンショットをご覧ください。
ここに表示されるのは、2台のコンピューター間でアップロードおよびダウンロードしたときの図です。より高いグラフ(95-98%の使用率)は、ローカルからリモート(上流192.168.100.152-> 192.168.100.151)です。下のグラフ(〜33%の使用率)は、ローカル(リモート192.168.100.152 <-192.168.100.151)に対してリモートです。
Auto MDI-Xの問題を排除するために、ケーブルの一方の端(ローカルコンピューター)にこれらのクロスオーバーアダプターの1つを接続しました。
それは確かにケーブルをクロスオーバーケーブルにするでしょう。地獄、私もそれをネットワークテスターでテストしました!本当に交差しています(ピン1 / 3、2 / 6)!
そのため、2台のコンピューター間に真のクロスオーバーケーブル接続があり、「1.0 Gbps全二重」を手動で設定しました。それでも、私はまだ同じ問題を抱えています。他にアイデアはありますか?Vistaコンピューターのアップグレード(または8.1コンピューターの再インストール)以外に?
更新3-ソフトウェアまたはハードウェアの制限?
私の最良の推測は、互いに互換性のない2つのオペレーティングシステムがあることです。どちらもWindowsシステムですが、すべてのWindowsシステムが同等になっているわけではありません。両方でVistaを使用するか、両方で8.1 Proを使用して、どのようなスループットが得られるかを確認する必要があります。それはアップグレードを購入することを意味します。くそー、マイクロソフト。
両方のコンピューターは、特注で構築されています。以下にいくつかの仕様を示します。
Local
-----
Gigabyte GA-EP45-UD3R
Intel Core 2 Quad Q9650
Intel P45
Corsair XMS2 DHX TwinX DDR2 PC6400/800MHz 4 GB
Realtek 8111C chips (10/100/1000 Mbit)
WD Caviar Black WD1002FAEX
Windows 8.1 Pro 64-bit
Remote
------
Gigabyte GA-X38-DQ6
Intel Core 2 Duo E4500
Intel X38
Corsair XMS2 DHX TwinX DDR2 PC6400/800MHz 4 GB
Dual Realtek 8111B chip (10/100/1000 Mbit)
WD Caviar Black WD1002FAEX
Windows Vista Ultimate 64-bit
Tonnyは、Vistaマシンが不良なRealtekチップを使用している可能性があることを示唆しました。そこで、これらの仕様を掘り下げました。現在、Vistaマシンは8111のBリビジョンを使用し、ローカルマシンは同じチップのCリビジョンを使用しています。これは何か意味がありますか?どちらも製造元によって1000 Mbit(上記参照)に対して明確に指定されています。8111Bがそれほどパフォーマンスが低い(360 Mbps)のでしょうか?
これらの特定のドライブは、107 MB / sのバーストレートに達します。これは、まさにローカルコンピューターでのテストで見た数字です。ただし、55 MB / sの連続したシーケンシャルまたはランダムな読み取り/書き込みでも、360 Mbpsには変換されません。これにより、私が得ている360 Mbpsではなく、440 Mbps前後のどこかになります。したがって、特に両方が同じドライブモデルを使用しているため、それがボトルネックになるとは思わない。また、ファイルコピー操作も1つのことですが、Iperfはディスクをまったく使用せず、テストにはRAMメモリのみを使用します。
更新4-TCPチェックサムオフロード
Tonnyが提案したように、TCPチェックサムオフロードをオフにしようとしました(IPv4およびIPv6の場合)。
また、両方のコンピューターで「Speed&Duplex」を自動に切り替えました。しかし、これは役に立ちませんでした。私はまだ一方向のスループットが低く、他の方向のスループットが高くなっています。
更新5-新しいドライバーバージョン
ローカルとリモートの両方のドライバーバージョンを、Gigabyte WebサイトとRealtek Webサイトからダウンロードした最新バージョンに更新しようとしました。
Update path...
On local (RTL8111C):
8.1.510.2013 (2013-05-10, Microsoft)
8.20.815.2013 (2013-08-15, Realtek)
On remote (RTL8111B):
6.241.623.2010 (2010-06-23, Realtek)
6.250.908.2011 (2011-09-08, Realtek)
6.252.1109.2012 (2012-11-09, Realtek)
私はまだ一方向で同じひどいスループットを得ました。
更新6-CPU使用率
CPU使用率を確認しました。これは問題になりません。これが私の発見です。
On local...
Download: 4 - 10 %
Upload: 4 - 10 %
Idle: 0 - 4 %
On remote...
Download: 24 - 38 %
Upload: 10 - 25 %
Idle: 1 - 6 %
ローカル(ダウンロード、アップロード、アイドル)...
リモート(ダウンロード、アップロード、アイドル)...
リモートははるかに多くのCPUパワーを使用しますが、これはCore 2 Duoが遅いものでもあります。しかし、テスト中に38%を超えることはありませんでした。ここで特に興味深いのは、ダウンロード時(ローカル->リモート)にアップロード時(ローカル<-リモート)よりも多くのCPUパワーを使用することです。
したがって、950 Mbpsのスループットでは38%を使用し、360 Mbpsでは25%を使用します。また、コアの使用率はバランスが取れておらず、1つのコアを他のコアよりも多く使用します。これからどのような結論を導き出すのかわからない。ローカルコンピューターにはコア使用率が表示されないため、比較することはできません。ただし、ローカルコンピューターのCPU使用率も同じです(ダウンロード/アップロードで10%)。
更新7-新しいIntelギガビットネットワークアダプター
リモートコンピューターに組み込みのRealtek RTL8111Bの代わりとして、Intelの新しいPCI-Express Gigabitネットワークアダプターをインストールしました。これは、アップロードが遅すぎると思われます。Intelアダプターの製品番号はEXPI9301CTです。私が読んだレビューによると、このアダプターは非常に優れているはずです。これをボトルネックとして除外したいだけです。
Iperf for Windowsでいくつかのテストを行ったところ、結果は次のとおりです。
ローカル(ダウンロード、アップロード)...
リモート(ダウンロード、アップロード)...
平均して、このアダプターは実際にはRealtekアダプターより少し遅いです。Realtekよりもオーバーヘッドが小さく、その結果、安定した連続スループットが得られると思います。しかし、このIntelアダプターを使用しても、一方向で約360 Mbps、他の方向で950 Mbpsしか得られません。
local: 192.168.100.152 (win 8, realtek 8111c)
remote: 192.168.100.154 (vista, intel desktop ct)
192.168.100.152 -> 192.168.100.154 113 MB/s
192.168.100.152 -> 192.168.100.154 104 MB/s
192.168.100.152 -> 192.168.100.154 103 MB/s
192.168.100.152 -> 192.168.100.154 104 MB/s
192.168.100.152 -> 192.168.100.154 102 MB/s
192.168.100.152 -> 192.168.100.154 104 MB/s
192.168.100.152 -> 192.168.100.154 101 MB/s
192.168.100.152 -> 192.168.100.154 102 MB/s
192.168.100.152 -> 192.168.100.154 101 MB/s
192.168.100.152 -> 192.168.100.154 104 MB/s
----------------------------------------------
Max: 113 MB/s Min: 101 MB/s Avg: 103.8 MB/s
192.168.100.152 <- 192.168.100.154 42.2 MB/s
192.168.100.152 <- 192.168.100.154 41.2 MB/s
192.168.100.152 <- 192.168.100.154 41.1 MB/s
192.168.100.152 <- 192.168.100.154 43.0 MB/s
192.168.100.152 <- 192.168.100.154 42.3 MB/s
192.168.100.152 <- 192.168.100.154 42.3 MB/s
192.168.100.152 <- 192.168.100.154 40.2 MB/s
192.168.100.152 <- 192.168.100.154 40.9 MB/s
192.168.100.152 <- 192.168.100.154 41.3 MB/s
192.168.100.152 <- 192.168.100.154 42.0 MB/s
-----------------------------------------------
Max: 43.0 MB/s Min: 40.2 MB/s Avg: 41.65 MB/s
ローカルからリモートへの最初のテスト実行で113 MB / sでピークに達した理由がわかりません。テスト実行中、その速度を維持し、グラフは113 MB /秒でほぼフラットでした。前と同様に、実行ごとに60秒の間隔を使用しました。ただし、次の実行では、104 MB /秒に低下しました。
これらの値からわかるように、このIntelアダプターのスループットは、組み込みのRealtekアダプターのスループットと同じです。したがって、アダプタ自体とは何の関係もないと言っても安全だと思います。そのため、RTL8111Bが他のマザーボードにあるRTL8111Cよりも劣る/小さいチップであると非難するのをやめることができます。これは、ますますソフトウェア/ OS /構成の問題、または一度に3つすべての問題のように見えます。
アップデート8-Ubuntu LINUXで素晴らしい結果
他のすべてのオプションを使い果たした後、私はついにLinuxでいくつかのテストを実行することに決め、素晴らしい結果を得ました。ローカルマシンとリモートマシンの両方で、Ubuntu Linux 13.10 LiveシステムとLinux用Iperf(バージョン2.0.5-3)を使用しました。結果は次のとおりです。
=======================================================
REALTEK 8111C <-> REALTEK 8111B | IPERF ON UBUNTU LINUX
=======================================================
local: 192.168.100.152
remote: 192.168.100.151
192.168.100.152 -> 192.168.100.151 112 MB/s
192.168.100.152 -> 192.168.100.151 112 MB/s
192.168.100.152 -> 192.168.100.151 112 MB/s
192.168.100.152 -> 192.168.100.151 112 MB/s
192.168.100.152 -> 192.168.100.151 112 MB/s
192.168.100.152 -> 192.168.100.151 112 MB/s
192.168.100.152 -> 192.168.100.151 112 MB/s
192.168.100.152 -> 192.168.100.151 112 MB/s
192.168.100.152 -> 192.168.100.151 112 MB/s
192.168.100.152 -> 192.168.100.151 112 MB/s
----------------------------------------------
Max: 112 MB/s Min: 112 MB/s Avg: 112 MB/s
192.168.100.152 <- 192.168.100.151 110 MB/s
192.168.100.152 <- 192.168.100.151 111 MB/s
192.168.100.152 <- 192.168.100.151 111 MB/s
192.168.100.152 <- 192.168.100.151 111 MB/s
192.168.100.152 <- 192.168.100.151 111 MB/s
192.168.100.152 <- 192.168.100.151 110 MB/s
192.168.100.152 <- 192.168.100.151 111 MB/s
192.168.100.152 <- 192.168.100.151 111 MB/s
192.168.100.152 <- 192.168.100.151 111 MB/s
192.168.100.152 <- 192.168.100.151 111 MB/s
----------------------------------------------
Max: 111 MB/s Min: 110 MB/s Avg: 110.8 MB/s
ローカル(ダウンロード、アップロード、アイドル)...
ご覧のとおり、Ubuntuを使用すると、両方向で同じスループットが得られます。両方のマシンで同じOSを使用しているからでしょうか、それとも別のものですか?両方のマシンで同じWindowsバージョンをセットアップした場合、同じスループットが得られますか?あるマシンで少し古いWindowsバージョン、つまりVistaを使用し、他のマシンで最新バージョンを使用する場合、なぜ重要なのか理解できませんか?... 。Windows XPは別の話です。
しかし、私は彼らがVistaを殺すためにできる限りのことをしていることを知っています。たとえば、最新のOffice 2013はWindows Vistaでは意図的にサポートされていません。Microsoftは、Vistaが決して起こらないことを願っていると確信しています。彼らがWindows 8.0が決して起こらなかったことを願うように。しかし、私は通常、彼らと同じように永続的であり、絶対に必要になるまでWindowsインストールをアップグレードしません。
したがって、問題は、2つの異なるWindowsバージョンで両方向に同じスループットを得る方法です。Windows Vistaはギガビット速度に対応している必要があります。20年前のOSなどでも、私たちが話しているWindows 95でもありません。Vistaは最新のOSです。両方のマシンで同じWindowsバージョンを実行することはまだテストしていません。2つのOSバージョン間でTCP実装または何かに違いがある可能性があります。もしそうなら、私はおそらくVistaマシンをアップグレードすることを余儀なくされます。それか、Linuxに切り替えます。私は、より安く、より多くを支払う準備ができていません。双方向のギガビットスループットを得るためだけにWindowsをアップグレードする必要があるのはなぜですか?...
アップデート9 ...
ケーブル
ケーブルを逆にしてみました。以前と同じ結果が得られました。また、新しいCat 6パッチケーブルを入手して試してみました。スループットテストの結果は同じでした。したがって、ここではケーブルは問題ではありません。事前終端/成形パッチケーブルのみを使用しました。したがって、配線は正しいはずです。しかし、私は後で自分のインストールケーブルを終了する予定です。
FWおよびAV
ファイアウォール(FW)およびアンチウイルス(AV)に関しては、サードパーティのFWまたはAVソフトウェアは使用していません。Windows FirewallとSecurity Essentialsしかありません。両方のマシンで両方とも無効にしました。スループットテストの結果は以前と同じでした。
LAN速度テスト
LAN Speed Test Lite 1.3をローカルマシンにインストールしました。テストはローカルのメモリとリモートマシンのディスクドライブ間で実行されると思います。よく分かりません。ただし、リモートマシン上の共有パスを要求します。リモートでo $共有を使用しました。
Upload: 427 Mbps
Download: 420 Mbps
これらの結果をあまり信用していません。グラフを見ると、テスト全体で非常に異なることがわかります。テストは「連続」テストでした。つまり、最初に書き込み(アップロード)テスト、次に読み取り(ダウンロード)テストです。同時アップロード/ダウンロードテストを行う場合、全体的なスループットは明らかに低下します。しかし、私はそのようなテストには興味がありません。これまでのところ、Windows(ファイル共有/ smb)とIperfの両方のファイル転送テストで「連続」テストを行ってきました。
LAN Speed Testでメモリ間テストを行ったことはありません。これは、リモートでLSTサーバーと呼ばれるプログラムを使用する必要があり、このプログラムを使用するには登録が必要だからです。
アップデート10 ...
ディスクドライブテスト
Crystal Disk Mark 3.0.3を使用して、ディスクドライブをテストしました。結果は次のとおりです。
Local disk: 118 MB/s read, 113 MB/s write
Remote disk: 70 MB/s read, 69 MB/s write
これらは、5回の実行と1000 MBの負荷に基づく順次読み取りおよび書き込み速度です。
これはローカルディスク(ディスクマーク、読み取り、書き込み)です...
そして、これはリモートディスクです...
しかし、私はこれを取得しません...これらの結果は矛盾しているようです。
オーケー、ローカルディスクは118 MB / sで読み取ることができるため、報告されたアップロードは約100 MB / sになります。ただし、リモートディスクは、書き込み速度が69 MB / sしかない場合、受信できません。しかし、いくつかの魔法の工夫によって、平均して100 MB / sを超えるアップロードしか得られません。
逆方向に行くことはより理にかなっています。リモートディスクが70 MB / sで読み取り可能で、ローカルディスクが113 MB / sで書き込み可能な場合、ダウンロードは70 MB / sを超えることはありません。平均で約40 MB / sのダウンロードが得られます。それは理にかなっているように思えます。
したがって、これらの結果から結論を出すことはできません。ローカルコンピューターのディスクドライブはほとんど使用されていません。また、OSを保持するディスクであり、そのシステム上の唯一のパーティションです。リモートディスクはほぼいっぱいですが、いくつかのパーティションでパーティション化されています。ただし、OSには使用されません。O:
ここでテスト用のドライブ文字を選択しました。これは、これが最も空き容量の多いパーティションだからです。
(C:
以前のテストでは、リモートマシンでOSを保持する完全に独立したSeagateディスクドライブ上のドライブ文字を使用したことに注意してください。したがって、これらの測定値は比較できません。)
書き込みキャッシュ
ディスク書き込みキャッシュを有効にすると、これらの結果が得られました。
Local to remote: 106 MB/s
Remote to local: 42.2 MB/s
次に、リモートドライブとローカルドライブのすべてのドライブで書き込みキャッシュを無効にしました。
変更を有効にするために再起動が要求されなかったため、再起動しませんでした。その後、次の結果を得ました。
Local to remote: 106 MB/s
Remote to local: 42.1 MB/s
実質的にまったく変化はありませんでした。再起動も再起動も要求されませんでした。
QOSパケット
次に、リモートマシンの適切なアダプタのQOSパケットスケジューラを無効にしてから、ローカルマシンで無効にしました。
Local to remote: 107 MB/s
Remote to local: 41.9 MB/s
ここで大きな変更はありません。繰り返しますが、再起動も再起動も要求されませんでした。
ジャンボパケット
4 KBは両方のマシンでサポートされている最大のMTUサイズであるため、4 GB設定を使用したジャンボパケットを有効にしました。
Local to remote: 105 MB/s
Remote to local: 33.3 MB/s
ここで、アップロード(ローカルからリモート)は影響を受けませんが、ダウンロードのスループットは大幅に低下しました。再起動は要求されませんでしたが、とにかく両方のマシンを再起動することにしました。その後、同じテストを再度実行して、これらの結果を得ました。
Local to remote: 117 MB/s
Remote to local: 33.2 MB/s
そのため、アップロードはさらに高速になりましたが、再起動後であっても、これらの変更を加える前よりもダウンロードが遅くなります。私はそれらが両方とも少し上がることを期待したでしょう。これは何を意味するのでしょうか?