Utilidades para medir el ancho de banda en Debian
Esta receta es una lista de programas de análisis de tráfico de red que están disponibles como paquetes Debian oficiales y que pueden resultar muy útiles
Contabilidad de tráfico
Se trata de programas que contabilizan la cantidad total de tráfico de subida o bajada en un periodo de tiempo dado. Son útiles para saber el uso que hacemos de la red, dimensionar adecuadamente el hardware que requiere un servidor o detectar problemas de todo tipo.
vnstat
Se trata de un programa realmente muy útil. Contabiliza todo el tráfico de subida y bajada acumulado y lo mantiene en una base de datos que se puede consultar en cualquier momento. Resulta muy útil para hacerte una idea del tráfico que genera un servidor o ver cuanto te queda para llegar a los 5GB mensuales que te permite simyo antes de empezar a clavarte de verdad.
Para empezar a contabilizar el tráfico de una interfaz concreta ejecuta:
# vnstat -u -i eth0
Y para ver después los datos recopilados simplemente ejecuta vnstat
(aunque tiene muchas opciones interesantes). Un pantallazo:
$ vnstat
Database updated: Fri Jan 9 01:00:01 2009
eth0
received: 1.97 GB (91.5%)
transmitted: 187.77 MB (8.5%)
total: 2.16 GB
rx | tx | total
-----------------------+------------+-----------
yesterday 221.92 MB | 17.94 MB | 239.87 MB
today 100.84 MB | 13.08 MB | 113.92 MB
-----------------------+------------+-----------
estimated 2.34 GB | 312 MB | 2.65 GB
pmacct
[ToDo]
Análisis instantáneo
Son programas que ofrecen información sobre la situación actual del uso de la red, o como mucho ofrecen un histórico desde el momento en que arrancó el programa, y al cerrarlos se pierde.
iptraf
El veterano iptraf
tiene una interfaz en modo texto pero a través de menús. Tiene un montón de posibilidades de filtrado, puede contabilizar el tráfico por protocolo, por interfaz, por tamaño del paquete, etc. Detecta flujos TCP indicando IP y puerto de cada extremo y un buen montón de otras posibilidades interesantes.
nethogs
De repente ves en el monitor de red que el ratio de descarga o de subida se dispara sin explicación. ¿A qué te gustaría saber qué programa es el responsable de tal despropósito? nethogs
es la solución, muestra todos los procesos y la cantidad de tráfico de subida/bajada. No muestra el ratio sino la cantidad total de bytes que ha movido cada programa desde que ejecutaste nethogs
, pero aún así es muy útil. Una “captura” del invento en acción:
NetHogs version 0.6.2pre2
PID USER PROGRAM DEV SENT RECEIVED
3947 bacula /usr/sbin/bacula-sd eth0 4284470.000 90966192.00B
4078 root icegridnode eth0 438.000 182.000 B
4715 david pidgin eth0 209.000 171.000 B
0 root unknown TCP 0.000 0.000 B
TOTAL 4285117.000 90966545.0B
pktstat
Muestra un listado constantemente actualizado de tráfico para la interfaz especificada. El listado clasifica el tráfico por protocolo y conexión. Indica también el ratio y el porcentaje que supone sobre el total. Su forma más sencilla de uso es:
$ pktstat -i eth0
interface: eth0
bps
bps % desc
13.6k 31% tcp barbyel:www <-> free:48823
- 304 GET /debian/dists/unstable/non-free/binary-i386/Packages.bz2
12.7k 29% tcp free:53578 <-> ug-in-f190:www
- 200 GET /linux/deb/dists/stable/non-free/binary-i386/Packages.bz2
7.0k 16% tcp free:39208 <-> wieck:www
- 304 GET /dists/lenny/updates/main/source/Sources.bz2
4.7k 10% tcp free:37204 <-> zeppo:www
- 304 GET /debian/dists/lenny/main/source/Sources.diff/Index
822.0 1% icmp unreach need-frag 192.168.200.1 -> free
529.4 1% tcp free:47394 <-> mg-in-f125:5222
331.6 0% udp free:36146 <-> resolver1:domain
319.0 0% udp free:51545 <-> resolver1:domain
288.4 0% udp free:60641 <-> resolver1:domain
iftop
Lista flujos de tráfico indicando los ratios de subida y bajada para los últimos 2, 10 y 40 segundos. Permite filtrar por dirección IP y protocolo.
# iftop
1.91Mb 3.81Mb 5.72Mb 7.63Mb 9.54Mb
└────────────────┴────────────────┴────────────────┴────────────────┴────────────────
free.local => crysol.esi.uclm.es 11.9Kb 2.39Kb 612b
<= 203Kb 0.5Kb 10.1Kb
free.local => barbyel.eso.ucla.eu 0b 2.71Kb 695b
<= 0b 4.56Kb 1.14Kb
free.local => ug-in-f136.google.com 0b 1.25Kb 319b
<= 0b 5.47Kb 1.37Kb
free.local => lobos.debian.org 0b 1.45Kb 372b
<= 0b 2.21Kb 565b
free.local => resolver1.opendns.com 1.69Kb 0.99Kb 254b
<= 1.54Kb 1.24Kb 316b
─────────────────────────────────────────────────────────────────────────────────────
TX: cumm: 112KB peak: 32.8Kb rates: 13.9Kb 9.37Kb 2.38Kb
RX: 4.11MB 206Kb 206Kb 55.1Kb 13.8Kb
TOTAL: 4.21MB 220Kb 220Kb 64.5Kb 16.2Kb
tcptrack
Monitoriza conexiones TCP indicando el estado de la conexión, el tiempo de inactividad y la velocidad instantánea:
Client Server State Idle A Speed
192.168.100.2:48129 130.206.1.5:80 ESTABLISHED 7s 0 B/s
192.168.100.2:60890 66.249.93.91:80 ESTABLISHED 7s 0 B/s
192.168.100.2:60878 161.67.144.12:80 ESTABLISHED 7s 0 B/s
192.168.100.2:40881 212.211.132.250:80 ESTABLISHED 7s 0 B/s
192.168.100.2:47394 209.85.137.125:5222 ESTABLISHED 26s 0 B/s
TOTAL 0 B/s
Connections 1-5 of 5 Unpaused Sorted by rate
bwm-ng
Mide el ancho de banda total (lectura instantánea) no solo de las interfaces de red, también de los discos.
bwm-ng v0.6 (probing every 0.500s), press 'h' for help
input: libstatdisk type: rate
- iface Rx Tx Total
==============================================================================
sda: 0.00 KB/s 0.00 KB/s 0.00 KB/s
sdb: 0.00 KB/s 63.49 KB/s 63.49 KB/s
sdc: 0.00 KB/s 0.00 KB/s 0.00 KB/s
------------------------------------------------------------------------------
total: 0.00 KB/s 63.49 KB/s 63.49 KB/s
nload
Device wlan0 [10.49.149.102] (1/1):
============================================================================
Incoming:
Curr: 0.00 kBit/s
Avg: 1025.80 kBit/s
. . .||. . Min: 0.00 kBit/s
#. ##########|| Max: 3637.38 kBit/s
####|...|############ Ttl: 170.09 MByte
Outgoing:
Curr: 0.00 kBit/s
Avg: 35.66 kBit/s
Min: 0.00 kBit/s
Max: 135.89 kBit/s
Ttl: 7.86 MByte
iperf
[ToDo]
¿Más?
Si conoces alguno más, deja comentario.