Débit max réseau, serveur Debian

Hello la communauté.

J’ai un problème que je n’arrive pas à identifier.

Je m’explique:

J’ai plusieurs machines sur le même LAN, connecté au même switch. que j’appelerai machineA (debian), machineB (debian), server(debian)
Tout en câble RJ45 Cat6 minimum (Voir 7)

Lorsque je lance des tests de performances avec iperf3, j’ai les résultat suivants :

machineA -> machineB => ~ 920Mbps
machineB -> machineA => ~ 920Mbps
machineA -> server => ~ 920Mbps
machineB -> server => ~ 920Mbps
server -> machineA => ~ 750Mbps
server -> machineB => ~ 750Mbps

Je n’arrive pas expliquer cette perte sur l’upload du serveur.
J’ai testé plusieurs chose sans succès:

  • Une autre carte réseau
  • Changer de cable
  • Changer de switch
  • Changer de port sur le switch
  • Désactiver les règles de QoS (avec tc)

Ce qui me dérange le plus, c’est que, sur la même carte réseau initiale, lorsque je la passthrough à une VM Windows, j’ai bien du 920Mbps symétrique (ce que je suis censé obtenir) avec exactement le même hardware (carte, cable, switch).

J’ai testé sur 2 type de carte différentes:
82574L (driver e1000e)
82576 (driver igb)

Tout semble pourtant bien aligné pour cela fonctionne:

ethtool eth1
Settings for eth1:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: on (auto)
    Supports Wake-on: pumbg
    Wake-on: g
    Current message level: 0x00000007 (7)
                           drv probe link
    Link detected: yes

Le fait que cela fonctionne sur l’ensemble de la Bande passante sur la VM windows, mais pas en directe sur e host me fait supposer qu’il s’agit certainement d’un problème software (driver, stack tcp, réservation de BP par l’OS … ) mais je ne trouve rien.

Quelqu’un aurait-il une idée?

Quel est le matériel de ton serveur ? Une «board» ? Un vieux PC ?
Il te manque de changer d’OS pour voir si ça vient vraiment du logiciel ou du matériel (autre que carte réseau).

c’est un vrai server:
Tyan S7012, dual xeon x5670, 3 carte ethernet :

  • Intel 82574L (driver e1000e) * 2
  • Intel 82576 (driver igb) dual port.

J’ai essayé sur les 2 modèles de carte.

La ou je suis quasi sur que c’est soft, c’est que, depuis le host, sur un port de la 82576, j’ai la limite.
Si je passe cette carte (en passthrough) à une VM Windows (KVM, iommu, etc), Windows n’a pas le souci, alors que, c’est la même carte, le même câble, et le même switch. Juste, pas le même driver / paramétrage, OS qui gère le stack

Ok j’ai sauté cette partie, donc en effet il doit y avoir un réglage coté Debian qui te limite. Et coté pare-feu ? Tu parle de QoS mais pas du pare-feu.

Rien côté iptables.

Je n’ai aucune surcouche genre shorewall ou autre, et je n’ai aucune règles iptables / ebtables.
C’est pour cela que je suis un peu perplexe devant cette limitation de perf.

J’ai aussi oublié de préciser, l’intégralité de mon LAN est en MTU 1500 et toutes les machines sont alignées.
La charge du serveur est pour le moment presque négligeable

Bonjour,
les valeurs standard pour ma Debian 9

root@alpha30:/proc/sys/net/ipv4# cat tcp_rmem
4096	87380	6291456
root@alpha30:/proc/sys/net/ipv4# cat tcp_wmem
4096	16384	4194304
root@alpha30:/proc/sys/net/ipv4# cat udp_rmem
cat: udp_rmem: Aucun fichier ou dossier de ce type
root@alpha30:/proc/sys/net/ipv4# cat udp_mem
137271	183028	274542
root@alpha30:/proc/sys/net/ipv4# 

Humm, bizarre comme limitation. N’ayant jamais été confronté a ce soucis (ou pas vue) je ne pourrais plus t’aider. dsl