![このネットワーク接続がなぜそんなに遅いのですか?](https://linux33.com/image/240/%E3%81%93%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E6%8E%A5%E7%B6%9A%E3%81%8C%E3%81%AA%E3%81%9C%E3%81%9D%E3%82%93%E3%81%AA%E3%81%AB%E9%81%85%E3%81%84%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F.png)
Ubuntu 9.10を実行しているLinuxサーバーでネットワークパフォーマンスの速度の問題が発生しています。 1000 mbit / s有線イーサネット接続では、すべての種類のトラフィックが約1.5 MB / sで送信されます。最近、サーバーがSamba速度を55 MB / sを超えました。ハードウェアまたはネットワーク設定を変更していません。私は定期的にアップデートを実行しており、Ubuntuリポジトリの最新および最高のバージョンがこのコンピュータで実行されています。
ハードウェア設定
デスクトップWindows PC - 1000スイッチ - 1000スイッチ - Linuxサーバー
すべてのスイッチはネットギアで、その接続にはすべて緑色のライトが表示されます。これは、接続速度が1000 mbit / sであることを意味します。接続速度が100mbit/sに過ぎないと、インジケーターは黄色です。追加の診断情報:
root@server:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:6e:3e:ae:36
inet addr:192.168.1.30 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:6eff:fe3e:ae36/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28678 errors:0 dropped:0 overruns:0 frame:0
TX packets:73531 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2109780 (2.1 MB) TX bytes:111039729 (111.0 MB)
Interrupt:22
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:113 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:23469 (23.4 KB) TX bytes:23469 (23.4 KB)
root@server:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: g
Current message level: 0x00000037 (55)
Link detected: yes
root@server:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok
サーバーは1000mbit/s接続があると思います。 Sambaを使ってファイルをコピーして転送速度をテストしました。また、Windows(nc -l -p 10000)に転送するためにサーバーでnetcat(nc target 10000 <aBigFile)を使用していましたが、同様のパフォーマンス低下を確認しました。
hdparmを使用してハードドライブの速度をテストしたところ、次のような結果が得られました。
root@server:~# hdparm -tT /dev/md0
/dev/md0:
Timing cached reads: 1436 MB in 2.00 seconds = 718.01 MB/sec
Timing buffered disk reads: 444 MB in 3.02 seconds = 147.24 MB/sec
DDを使用して転送するために同じファイルを読み取ると、次の結果が生成されます。
paul@server:/home/share/Series/New$ dd if=aBigFile of=/dev/null
3200369+1 records in
3200369+1 records out
1638589012 bytes (1.6 GB) copied, 12.7091 s, 129 MB/s
混乱しています。ネットワークパフォーマンスがネットワークパフォーマンスの2倍低い原因は何ですか?
答え1
確認する必要があるいくつかの点があります。
- 二重 - 一方の側ではリンクが全二重であると考え、他方ではリンクが半二重であると考えると、望ましくない状況が予想されることがあります。
- スイッチに欠陥がありますか?その周りを見てください。
- ジャンボフレーム。 9000バイトのMTUはオーバーヘッドを減らし、スループットを向上させます(少し待ち時間が発生しますが)。問題は深刻なようですが、あまり役に立ちません。
- TCP機能:ECN、SACK、輻輳制御アルゴリズム
- TCP送受信ウィンドウサイズ(Linuxの詳細)
netperfは、ネットワークパフォーマンスの問題を解決するのに適しています。しかし、状況によってはnetcatも悪くはありません。
答え2
私の専門的な経験によると、私はGNU / LinuxでSambaを使用して優れた信頼性の高いネットワークパフォーマンスを得ることを試みました。あなたはそれで55MBpsを達成したと言いましたが、私はそれだと思うので、他の要因が機能すると思います。
ところで、NFS、FTP、SCPを使ってみましたか?さまざまなプロトコルの帯域幅の問題は一貫していますか?その場合、物理接続が問題である可能性があります。一貫性のない結果が表示される場合は、ソフトウェアの問題かもしれません。
他のプロトコルのテストに加えて、転送中に暗号化を使用していますか?たとえば、rsync -z
圧縮を使用すると優れていますが、CPUコストが消費され、全体の転送速度に深刻な影響を与えます。SSH
with を使用するとrsync
圧縮の上で暗号化が実行され、CPU に多少のストレスがかかり、重大な速度損失が発生します。
答え3
netstat -i
rx / txエラーを見つけてください。- TCPの問題を見つけてください
netstat -s
。ファイルコピーの前後の値を比較し、リセットまたは再送信で大きな幅のスパイクを見つけます。
答え4
可能であれば、これが実際にOS/ドライバ/カードの問題であることに関するほとんどの人の疑いを取り除くには、クロスオーバーケーブルを使用してコンピュータを互いに接続します。これにより、方程式からスイッチやその他の可能なネットワーク問題が排除されます。