Pourquoi cette connexion réseau est-elle si lente?

11

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?

Paul Keeble
la source
serverfault est probablement le meilleur endroit pour poser de telles questions.
Maciej Piechotka
Essayez cette question ServerFault pour les techniques générales utiles pour dépanner une connexion réseau lente.
Si rien n'a changé, blâmez l'usure (câbles).
Mel

Réponses:

6

Certaines choses que vous devriez envisager de vérifier:

  1. Duplex - si un côté pense que le lien est en duplex intégral et que l'autre côté pense que le lien est semi-duplex, attendez-vous à la mauvaise.
  2. Interrupteur défectueux? Contournez-les.
  3. Cadres Jumbo. La MTU de 9 000 octets diminue le temps système, ce qui devrait augmenter le débit (en perdant un peu la latence). Il semble que votre problème soit si grave que cela ne vous aidera pas.
  4. Fonctionnalités TCP: ECN, SACK, contrôle de congestion alg
  5. Tailles des fenêtres d'envoi / réception TCP ( détails pour Linux )

netperf est excellent pour dépanner les performances du réseau. Mais netcat n'est pas mauvais à la rigueur.

Brian Cain
la source
6

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 -zest douce pour activer la compression, mais elle a un coût CPU, ce qui affecte gravement la vitesse globale du transfert. Si vous utilisez SSHavec rsync, 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.

Aaron Toponce
la source
2
  1. Essayez de netstat -irechercher les erreurs rx / tx.
  2. Essayez de netstat -srechercher 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.
Rafael Ferreira
la source
Hélas, il n'y a aucune erreur TX / RX après 100 Mo et le nombre de réinitialisations a toujours été de 4 du début à la fin du test
Paul Keeble
0

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.

pmalmsten
la source
Au moment du test, il s'agissait des deux seuls appareils du réseau, rien d'autre n'était allumé.
Paul Keeble
0

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.

Stephen Jazdzewski
la source