J'ai des problèmes avec la vitesse des performances du réseau sur un serveur Linux exécutant Ubuntu 9.10. Les vitesses de transfert sur tous les types de trafic sont d'environ 1,5 Mo / s sur une connexion Ethernet filaire à 1000 Mbits / s. Ce serveur a atteint 55 Mo / s sur samba dans un passé récent. Je n'ai pas changé la configuration matérielle ou réseau. J'exécute régulièrement des mises à jour et la dernière et la meilleure des référentiels d'Ubuntu fonctionne sur cette machine.
Configuration materielle
Ordinateur de bureau Windows - commutateur 1000 - commutateur 1000 - serveur Linux
Tous les commutateurs sont netgear, et ils affichent tous un feu vert pour leurs connexions, ce qui signifie que la connexion est de 1000 Mbits / s. Les voyants sont jaunes lorsque la connexion n'est que de 100 Mbits / s. Autres informations de diagnostic:
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
Le serveur pense qu'il a une connexion à 1000 Mbits / s. J'ai testé la vitesse de transfert en copiant des fichiers avec Samba. J'ai également utilisé netcat (nc target 10000 <aBigFile) sur le serveur pour transférer vers Windows (nc -l -p 10000) et j'ai vu des niveaux similaires de mauvaises performances.
J'ai testé la vitesse des disques durs en utilisant hdparm et j'ai obtenu:
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
La lecture du même fichier pour le transfert à l'aide de DD a produit ce qui suit:
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
Je suis perplexe. Qu'est-ce qui pourrait être à l'origine des mauvaises performances du réseau qui sont inférieures de 2 ordres de grandeur à celles dont le réseau est capable?
la source
Réponses:
Certaines choses que vous devriez envisager de vérifier:
netperf est excellent pour dépanner les performances du réseau. Mais netcat n'est pas mauvais à la rigueur.
la source
Dans mon expérience professionnelle, j'ai eu du mal à obtenir de bonnes performances réseau solides avec Samba sur GNU / Linux. Vous avez mentionné que vous aviez atteint des vitesses de 55 Mbps, ce qui, je crois, donc je suppose que quelque chose d'autre est définitivement en jeu.
Cependant, avez-vous essayé NFS, FTP et SCP? Les problèmes de bande passante sont-ils cohérents entre les différents protocoles? Si tel est le cas, il est vraisemblablement limité à la connexion physique. Si vous obtenez des résultats incohérents, il s'agit probablement d'un problème logiciel.
En plus de tester les autres protocoles, utilisez-vous le cryptage sur le transfert? Par exemple, l'utilisation
rsync -z
est douce pour activer la compression, mais elle a un coût CPU, ce qui affecte gravement la vitesse globale du transfert. Si vous utilisezSSH
avecrsync
, vous disposez d'un chiffrement en plus de la compression et votre processeur sera soumis à un peu de stress, entraînant de graves pénalités de vitesse.la source
netstat -i
rechercher les erreurs rx / tx.netstat -s
rechercher les problèmes de TCP - comparez les valeurs avant et après la copie du fichier et recherchez les pics importants dans les réinitialisations ou les retransmissions.la source
Vous pouvez vérifier la congestion de votre réseau; certains autres appareils consomment peut-être toute votre bande passante?
Au-delà de cela, peut-être que quelque chose ne va pas avec votre interface réseau et / ou son pilote. Assez bizarre.
la source
Si possible, pour lever le plus de doute qu'il s'agit bien d'un problème de système d'exploitation / pilote / carte, connectez les ordinateurs ensemble à l'aide d'un câble croisé. Cela supprimera le commutateur et d'autres problèmes de réseau possibles de votre équation.
la source