User Tools

Site Tools


informatique:linux:reseau

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:linux:reseau [2020/12/06 18:33] – Activer le TCP BBR pteuinformatique:linux:reseau [2023/05/05 12:35] (current) – [Diagnostique] pteu
Line 190: Line 190:
   * [[https://www.kernel.org/doc/Documentation/networking/bonding.txt|Linux Ethernet Bonding Driver HOWTO]] sur kernel.org   * [[https://www.kernel.org/doc/Documentation/networking/bonding.txt|Linux Ethernet Bonding Driver HOWTO]] sur kernel.org
   * [[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-using_channel_bonding|Using Channel Bonding]] (Redhat.com)   * [[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-using_channel_bonding|Using Channel Bonding]] (Redhat.com)
 +
 +=====Diagnostique=====
 +
 +Afficher les infos globales de la carte réseau:
 +<code bash>
 +ifconfig eno0
 +eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 +        inet 10.0.34.26  netmask 255.255.255.0  broadcast 10.0.34.255
 +        inet6 fe80::32d0:42ff:fe12:3456  prefixlen 64  scopeid 0x20<link>
 +        ether 30:d0:42:12:34:56  txqueuelen 1000  (Ethernet)
 +        RX packets 4963422  bytes 1239605132 (1.1 GiB)
 +        RX errors 0  dropped 208003  overruns 0  frame 0
 +        TX packets 4106056  bytes 4178402339 (3.8 GiB)
 +        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 +        device interrupt 16  memory 0x72180000-721a0000
 +</code>
 +Ici le compteur de paquets reçus supprimés (dropped) est important ; pourtant il n'indique __pas nécessairement__ un problème dans la mesure où le kernel décompte les paquets :
 +  * reçus avec un mauvais tag de VLAN
 +  * utilisant un protocole inconnu
 +  * utilisant une adresse multicast non enregistrée
 +  * reçus par un agrégat inactif
 +
 +Les commandes suivantes sont des alternatives équivalentes qui remontent les mêmes compteurs :
 +<code bash>
 +ip -s link
 +2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
 +    link/ether 30:d0:42:12:34:56 brd ff:ff:ff:ff:ff:ff
 +    RX: bytes  packets  errors  dropped overrun mcast
 +    1239605132 4963422  0       208003  0       4807
 +    TX: bytes  packets  errors  dropped carrier collsns
 +    4178403021 4106057  0                   0
 +</code>
 +
 +<code bash>
 +netstat -i
 +Table d'interfaces noyau
 +Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
 +eth0             1500  4963422      0 208003 0       4106059      0      0      0 BMRU
 +</code>
 +
 +Il est plus pertinent de consulter les compteurs avec l'utilitaire ethtool (commande passée sur une autre machine) :
 +<code bash>
 +ethtool -S eth0
 +NIC statistics:
 +     rx_packets: 145743003
 +     tx_packets: 171911063
 +     rx_bytes: 51104241565
 +     tx_bytes: 222190909954
 +     rx_broadcast: 9278170
 +     tx_broadcast: 50
 +     rx_multicast: 3348219
 +     tx_multicast: 8
 +     rx_errors: 0
 +     tx_errors: 0
 +     tx_dropped: 0
 +     multicast: 3348219
 +     collisions: 0
 +     rx_length_errors: 0
 +     rx_over_errors: 0
 +     rx_crc_errors: 0
 +     rx_frame_errors: 0
 +     rx_no_buffer_count: 708691
 +     rx_missed_errors: 101954
 +     tx_aborted_errors: 0
 +     tx_carrier_errors: 0
 +     tx_fifo_errors: 0
 +     tx_heartbeat_errors: 0
 +     tx_window_errors: 0
 +     tx_abort_late_coll: 0
 +     tx_deferred_ok: 0
 +     tx_single_coll_ok: 0
 +     tx_multi_coll_ok: 0
 +     tx_timeout_count: 0
 +     tx_restart_queue: 0
 +     rx_long_length_errors: 0
 +     rx_short_length_errors: 0
 +     rx_align_errors: 0
 +     tx_tcp_seg_good: 0
 +     tx_tcp_seg_failed: 0
 +     rx_flow_control_xon: 0
 +     rx_flow_control_xoff: 0
 +     tx_flow_control_xon: 0
 +     tx_flow_control_xoff: 0
 +     rx_csum_offload_good: 132050209
 +     rx_csum_offload_errors: 284
 +     rx_header_split: 0
 +     alloc_rx_buff_failed: 0
 +     tx_smbus: 0
 +     rx_smbus: 0
 +     dropped_smbus: 0
 +     rx_dma_failed: 0
 +     tx_dma_failed: 0
 +     rx_hwtstamp_cleared: 0
 +     uncorr_ecc_errors: 0
 +     corr_ecc_errors: 0
 +     tx_hwtstamp_timeouts: 0
 +     tx_hwtstamp_skipped: 0
 +</code>
 +Dans cette dernière commande, le compteur **rx_missed_errors** indique des paquets perdus ; la cause est souvent la saturation du tampon de l'interface réseau, car trop de paquets sont reçus en même temps (à cause de burst, voir contrôle de flux), ou CPU trop lente/chargée pour les traiter.
 +
 +Il peut être utile d'augmenter la taille des buffers et de faire des tests ; en gardant à l'esprit que cela augmente aussi la latence :
 +<code bash>
 +# afficher les paramètres actuels et les max admis
 +ethtool -g eno0
 +Ring parameters for eno0:
 +Pre-set maximums:
 +RX:             4096
 +RX Mini:        0
 +RX Jumbo:       0
 +TX:             4096
 +Current hardware settings:
 +RX:             256
 +RX Mini:        0
 +RX Jumbo:       0
 +TX:             256
 +
 +# augmenter les buffers rx/tx
 +ethtool -G eno0 rx 4096 tx 4096
 +</code>
  
 =====Tips===== =====Tips=====
informatique/linux/reseau.1607279610.txt.gz · Last modified: 2020/12/06 18:33 by pteu