Perf network

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Débit réseau en temps réel, sans outil externe
Source /sys/class/net/<iface>/statistics/
Alternatives modernes sar -n DEV, ip -s link, iftop, nload
Voir aussi Vmstat · Iostat · Bash

Petit script affichant en temps réel le débit d'entrée et de sortie d'une interface réseau, en lisant directement les compteurs exposés par le noyau sous /sys/class/net/ — utile sur une machine minimale où aucun outil de supervision réseau (iftop, nload, sar) n'est installé.

Script

#!/bin/bash

if [ -z "$1" ]; then
    echo
    echo "usage: $0 interface-reseau"
    echo
    echo "ex: $0 eth0"
    echo
    exit 1
fi

IF=$1

while true; do
    R1=$(cat "/sys/class/net/$IF/statistics/rx_bytes")
    T1=$(cat "/sys/class/net/$IF/statistics/tx_bytes")
    sleep 1
    R2=$(cat "/sys/class/net/$IF/statistics/rx_bytes")
    T2=$(cat "/sys/class/net/$IF/statistics/tx_bytes")

    RKBPS=$(( (R2 - R1) / 1024 ))
    TKBPS=$(( (T2 - T1) / 1024 ))

    echo "$IF : rx ${RKBPS} kB/s, tx ${TKBPS} kB/s"
done

Différence avec le script d'origine : le calcul utilisait expr (relance un processus externe à chaque itération) — remplacé ici par l'arithmétique intégrée $(( )), plus rapide et sans dépendance externe.

Principe

Le noyau Linux expose pour chaque interface un compteur d'octets cumulés depuis son activation (ou depuis le dernier redémarrage) dans /sys/class/net/<iface>/statistics/rx_bytes et tx_bytes. Ce ne sont pas des débits mais des compteurs cumulatifs : le script calcule le débit en mesurant la différence entre deux lectures espacées d'une seconde.

Quand préférer un outil existant

Ce script reste une solution de dépannage sans dépendance. Sur une machine où c'est possible, des outils dédiés donnent plus d'information pour un effort équivalent :

  • sar -n DEV 1 (paquet sysstat) — historique, plusieurs interfaces à la fois, intégré à la supervision système classique ; voir aussi Vmstat et Iostat pour la même famille d'outils côté CPU/disque.
  • ip -s link show dev eth0 — compteurs cumulés incluant erreurs et paquets perdus, sans installation supplémentaire (iproute2 est présent par défaut).
  • iftop / nload — affichage interactif temps réel, éventuellement par connexion pour iftop.

Source

Technique initialement publiée sur https://wiki.vinz92.com/index.php/Performances_r%C3%A9seau_sous_linux.

Voir aussi

  • Vmstat / Iostat — équivalents pour la mémoire/CPU et le disque
  • Bash — boucles, arithmétique $(( ))