comment get les statistics de QoS du réseau dans le kernel Linux?

Existe-t-il un moyen d'get la bande passante, le timeout, la collision, le taux d'erreur et le taux de perte d'un certain lien via l'interface sur une machine locale?

disons que ma machine est connectée à un réseau via deux interfaces, l'une sans fil et l'autre Ethernet. Je veux comparer la qualité de ces deux liens à travers ces mesures.

Y at-il un moyen d'get ces mesures dans le kernel Linux? (v. 3.5.0)

C'est probablement le meilleur tutoriel que j'ai trouvé pour se familiariser avec les statistics QoS dans le kernel Linux. Il a été publié à l'origine dans le Linux Magazine en 2010 mais rest tout à fait pertinent.

L'article était intitulé: Voyage au centre du kernel Linux: contrôle du trafic, mise en forme et QoS .

Il est difficile de donner tous les détails, surtout de ne pas savoir quelle dissortingbution vous utilisez et comment détaillée vous voulez que les résultats soient – donc je vais juste énumérer quelques exemples très basiques .

Si vous cherchez à get des statistics individuelles pour chaque interface, nous pouvons décomposer chaque élément séparément (l'access root est le suivant sur une dissortingbution comme CentOS):

Pour l'utilisation de bande passante – j'aime vraiment iftop. Lorsque vous avez installé iftop vous pouvez exécuter la command suivante:

 iftop -i eth0 -B 

L'option -B est pour Bytes. Une fois à l'intérieur iftop j'aime appuyer sur "T" pour get un total cummulative.

Pour le taux d'erreur, vous pouvez facilement voir cela dans la sortie de ifconfig dans votre console. Pour get une approche plus rationnelle, vous pouvez exécuter une command très grossière comme celle-ci (en supposant quelque chose comme Centos):

 # ifconfig | grep -E "^\w|errors.* " | sed 's/pack.*errors:/Errors:/g' | sed 's/ drop.*//g' | sed 's/HW.*//g' eth0 Link encap:Ethernet RX Errors:0 TX Errors:0 eth1 Link encap:Ethernet RX Errors:3 TX Errors:1 lo Link encap:Local Loopback RX Errors:0 TX Errors:0 

Cela vous donnera le nombre d'erreurs pour chaque interface.

Pour les collisions, vous pouvez toujours utiliser ifconfig . Pour get juste le nombre de collisions, une autre command de base serait la suivante:

 # ifconfig | grep -E "^\w|collisions.* " | sed 's/pack.*collisions:/Collisions:/g' | sed 's/ txq.*//g' | sed 's/HW.*//g' eth0 Link encap:Ethernet collisions:0 eth1 Link encap:Ethernet collisions:0 lo Link encap:Local Loopback collisions:0 

Pour les packages abandonnés , toujours en utilisant ifconfig , vous pouvez exécuter une autre command simple:

 # ifconfig | grep -E "^\w|dropped.* " | sed 's/pack.*dropped:/Dropped:/g' | sed 's/ over.*//g' | sed 's/HW.*//g' eth0 Link encap:Ethernet RX Dropped:0 TX Dropped:0 eth1 Link encap:Ethernet RX Dropped:1 TX Dropped:0 lo Link encap:Local Loopback RX Dropped:0 TX Dropped:0 

Si vous avez beaucoup de packages défectueux (erreurs, collisions ou chutes), vous pouvez mettre les 3 commands précédentes dans un script bash et utiliser la command watch pour les surveiller:

FICHIER / tmp / netErrors:

 #!/bin/sh ifconfig | grep -E "^\w|errors.* " | sed 's/pack.*errors:/Errors:/g' | sed 's/ drop.*//g' | sed 's/HW.*//g' echo ifconfig | grep -E "^\w|collisions.* " | sed 's/pack.*collisions:/Collisions:/g' | sed 's/ txq.*//g' | sed 's/HW.*//g' echo ifconfig | grep -E "^\w|dropped.* " | sed 's/pack.*dropped:/Dropped:/g' | sed 's/ over.*//g' | sed 's/HW.*//g' echo 

COMMANDER:

 watch /tmp/netErrors 

Pour QoS , cela dépend vraiment de la façon dont vous le définissez. Pour Linux, traffic control est courant pour la définition de la qualité de service. Pour afficher la qualité de service actuelle avec traffic control vous pouvez exécuter la command suivante:

 # tc qdisc ls qdisc pfifo_fast 0: dev eth0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc pfifo_fast 0: dev eth2 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 qdisc pfifo_fast 0: dev tun0 root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1 

tc – command de contrôle de trafic qdisc – files d'attente disciplines ls – list

Pour get une bonne ventilation du traffic control de la traffic control vous devriez vérifier le lien suivant sur le contrôle de la circulation .

Les packages tels que ntop affichent cette information. Vous pouvez également installer des nagios et des cacti , qui sont beaucoup plus puissants mais prennent un peu de time à configurer.