Ubuntu 9.10を実行しているLinuxサーバーのネットワークパフォーマンス速度に問題があります。すべてのタイプのトラフィックの転送速度は、1000 Mbpsの有線イーサネット接続で約1.5 MB /秒です。このサーバーは、最近のサンバで55MB/sを達成しています。ハードウェアやネットワークの設定は変更していません。私は定期的に更新を実行しており、Ubuntuのリポジトリの最新かつ最高のものがこのマシンで実行されています。
デスクトップWindows PC-1000スイッチ-1000スイッチ-Linuxサーバー
すべてのスイッチはネットギアであり、接続はすべて1000mbit/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を使用してファイルをコピーすることにより、転送速度をテストしました。サーバーでnetcat(ncターゲット10000 <aBigFile)を使用してWindows(nc -l -p 10000)に転送したところ、同様のレベルのパフォーマンスの低下が見られました。
私は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桁低いネットワークパフォーマンスの低下を引き起こす可能性がありますか?
私の専門的な経験では、GNU/LinuxでSambaを使用して優れた安定したネットワークパフォーマンスを得るのに苦労しました。これで55 MBpsの速度を達成したとおっしゃっていましたが、私はそれが信じているので、他の何かが確実に機能していると思います。
しかし、NFS、FTP、SCPを試しましたか?帯域幅の問題は、さまざまなプロトコルにわたって一貫していますか?その場合は、物理的な接続に絞り込まれている可能性があります。一貫性のない結果が表示される場合は、ソフトウェアの問題である可能性があります。
他のプロトコルのテストとは別に、転送に暗号化を使用していますか?たとえば、rsync -z
は圧縮を有効にするのに適していますが、CPUコストがかかるため、転送の全体的な速度に大きな影響を与えます。 SSH
をrsync
とともに使用すると、圧縮に加えて暗号化が適用され、CPUに少し負荷がかかり、速度が大幅に低下します。
チェックを検討する必要があるいくつかの事柄:
netperfは、ネットワークパフォーマンスのトラブルシューティングに優れています。しかし、netcatはピンチで悪くありません。
netstat -i
を試して、rx/txエラーを探します。netstat -s
を試してtcpの問題を探します-ファイルコピーの前後の値を比較し、リセットまたは再送信で大きなスパイクを探します。あなたはあなたのネットワークの混雑をチェックするかもしれません。おそらく他のいくつかのデバイスがあなたの帯域幅をすべて消費していますか?
それを超えて、ネットワークインターフェイスやそのドライバに問題がある可能性があります。かなり変。
可能であれば、それが本当にOS /ドライバー/カードの問題であるというほとんどの疑いを取り除くために、クロスケーブルを使用してコンピューターを接続します。これにより、スイッチやその他のネットワークの問題が方程式から削除されます。