Ich habe einige Probleme mit der Geschwindigkeit der Netzwerkleistung auf einem Linux-Server mit Ubuntu 9.10. Die Übertragungsgeschwindigkeit für alle Arten von Verkehr liegt bei einer kabelgebundenen Ethernet-Verbindung mit 1000 MBit / s bei etwa 1,5 MB / s. Dieser Server hat in der jüngeren Vergangenheit 55 MB / s gegenüber Samba erreicht. Ich habe die Hardware- oder Netzwerkeinrichtung nicht geändert. Ich führe regelmäßig Updates durch und das neueste und beste aus Ubuntus Repositories läuft auf diesem Computer.
Hardware-Setup
Desktop Windows PC - 1000 Switch - 1000 Switch - Linux Server
Alle Switches sind Netgear und alle zeigen grünes Licht für ihre Verbindungen, was bedeutet, dass die Verbindung 1000 MBit / s beträgt. Die Lichter leuchten gelb, wenn die Verbindung nur 100 MBit / s beträgt. Sonstige diagnostische Informationen:
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
Der Server glaubt, eine 1000-Mbit / s-Verbindung zu haben. Ich habe die Übertragungsgeschwindigkeit durch Kopieren von Dateien mit Samba getestet. Ich habe auch netcat (nc target 10000 <aBigFile) auf dem Server verwendet, um auf Windows zu übertragen (nc -l -p 10000), und habe ähnliche Leistungsschwächen festgestellt.
Ich habe die Geschwindigkeit der Festplatten mit hdparm getestet und Folgendes erhalten:
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
Das Lesen derselben Datei für die Übertragung mit DD ergab Folgendes:
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
Ich bin ratlos. Was könnte die schlechte Netzwerkleistung verursachen, die 2 Größenordnungen niedriger ist als die Leistung des Netzwerks?
quelle
Antworten:
Einige Dinge, die Sie überprüfen sollten:
netperf eignet sich hervorragend zur Fehlerbehebung bei der Netzwerkleistung. Aber Netcat ist zur Not nicht schlecht.
quelle
In meiner beruflichen Erfahrung hatte ich Probleme, mit Samba unter GNU / Linux eine solide Netzwerkleistung zu erzielen. Sie haben erwähnt, dass Sie damit Geschwindigkeiten von 55 MBit / s erreicht haben, was meiner Meinung nach definitiv etwas anderes im Spiel ist.
Haben Sie jedoch NFS, FTP und SCP ausprobiert? Sind die Bandbreitenprobleme in den verschiedenen Protokollen konsistent? Wenn ja, wird es wahrscheinlich auf die physische Verbindung eingegrenzt. Wenn Sie inkonsistente Ergebnisse erhalten, liegt wahrscheinlich ein Softwareproblem vor.
Verwenden Sie neben dem Testen der anderen Protokolle auch Verschlüsselung für die Übertragung? Zum Beispiel ist die Verwendung
rsync -z
für die Aktivierung der Komprimierung sehr hilfreich, verursacht jedoch CPU-Kosten, die die Gesamtgeschwindigkeit der Übertragung erheblich beeinträchtigen. Wenn SieSSH
mit verwendenrsync
, haben Sie zusätzlich zur Komprimierung eine Verschlüsselung, und Ihre CPU ist etwas belastet, was zu erheblichen Geschwindigkeitseinbußen führt.quelle
netstat -i
, nach RX / TX-Fehlern zu suchen.netstat -s
, nach TCP-Problemen zu suchen - vergleichen Sie die Werte vor und nach dem Kopieren der Datei und suchen Sie nach großen Spitzen beim Zurücksetzen oder erneuten Übertragen.quelle
Sie können die Überlastung Ihres Netzwerks überprüfen. Vielleicht verbrauchen einige andere Geräte Ihre gesamte Bandbreite?
Darüber hinaus stimmt möglicherweise etwas mit Ihrer Netzwerkschnittstelle und / oder ihrem Treiber nicht. Ziemlich komisch.
quelle
Um die meisten Zweifel daran zu beseitigen, dass es sich tatsächlich um ein Betriebssystem- / Treiber- / Kartenproblem handelt, verbinden Sie die Computer nach Möglichkeit mit einem Crossover-Kabel. Dadurch werden der Switch und andere mögliche Netzwerkprobleme aus Ihrer Gleichung entfernt.
quelle