como obter estatísticas de QoS da rede no kernel do linux?

4

Existe uma maneira de obter a largura de banda, atraso, colisão de jitter, taxa de erro e taxa de perda de um determinado link através da interface em uma máquina local?

digamos que minha máquina esteja conectada a uma rede por meio de duas interfaces, uma sem fio e a outra ethernet. Quero comparar a qualidade desses dois links por meio dessas medições.

Existe alguma maneira de obter essas medições no kernel do Linux? (v. 3.5.0)

    
por Varda Elentári 12.06.2013 / 11:12

3 respostas

1

Este é provavelmente o melhor tutorial que encontrei para me familiarizar com as estatísticas de QoS no kernel do Linux. Foi originalmente publicado na Linux Magazine em 2010, mas ainda é completamente relevante.

O artigo foi intitulado: Jornada ao Centro do Kernel Linux: Controle de Tráfego, Modelagem e QoS .

    
por 15.06.2013 / 14:18
1

É difícil dar detalhes completos, especialmente sem saber qual distribuição você está usando e quão detalhados você quer que os resultados sejam - então vou listar alguns muito básicos exemplos.

Se você deseja obter estatísticas individuais para cada interface, podemos dividir cada item separadamente (o seguinte pressupõe acesso root em uma distribuição como o CentOS):

Para uso de largura de banda - gosto muito de iftop. Quando você tem o iftop instalado, você pode executar o seguinte comando:

iftop -i eth0 -B

A opção -B é para Bytes. Uma vez dentro de iftop eu gosto de pressionar "T" para obter um total cumulativo.

Para taxa de erro , você pode ver isso na saída de ifconfig em seu console. Para obter uma abordagem mais dinâmica, você poderia executar um comando muito bruto como este (assumindo algo como 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

Isso fornecerá a contagem de erros para cada interface.

Para colisões , você ainda pode usar ifconfig . Para obter apenas a contagem de colisões, outro comando básico seria o seguinte:

# 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

Para pacotes descartados , ainda usando ifconfig , você pode executar outro comando simples:

# 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

Se você está tendo muitos pacotes defeituosos (erros, colisões ou descartados), você pode colocar os 3 comandos anteriores em um script bash e usar o comando watch para monitorá-los:

FILE / 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

COMANDO:

watch /tmp/netErrors

Para QoS , isso realmente depende de como você está configurando. Para o Linux, traffic control é comum para configurar o QoS. Para ver a atual QoS com traffic control , você pode executar o seguinte comando:

# 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 - comando de controle de tráfego qdisc - disciplinas de enfileiramento ls - list

Para obter uma boa análise de traffic control , você deve conferir o seguinte link no controle de tráfego .

    
por 21.06.2013 / 04:31
0

Pacotes como ntop mostram essa informação. Você também pode instalar nagios e cacti , que são muito mais poderosos, mas leve algum tempo para configurar.

    
por 18.06.2013 / 08:45