Está en la página 1de 2

Cómo monitorear el consumo de ancho de banda en GNU/Linux

En el artículo Cómo monitorear el tráfico de red en tiempo real en GNU/Linux demostré cómo es posible
monitorear, en tiempo real, la utilización de los dispositivos de red y el consumo de ancho de banda utilizando
la herramienta nload. En este artículo voy a explicar cómo generar y mantener un registro estadístico del
consumo de recursos de red en GNU/Linux, utilizando la herramienta vnStat.

vnStat es un monitor de tráfico de red de línea de comandos para Linux y BSD que mantiene un registro (log)
del consumo de ancho de banda para las interfaces de red seleccionadas. Utiliza los datos estadísticos de las
interfaces de red provistos por el kernel como fuente de información. Por ende, vnStat no esnifea (sniffing)
tráfico y asegura un consumo extremadamente bajo de recursos del sistema. vnStat es software open source y se
libera bajo la licencia GPL.

Para instalar vnstat en Debian y derivados simplemente se debe ejecutar sudo apt-get install vnstat. En
CentOS es necesario agregar el repositorio RPMforge y luego ejecutar yum install vnstat.

vnStat funciona como un servicio que recolecta información periódicamente y la almacena en una base de datos
interna dentro del directorio /var/lib/vnstat/. Antes de iniciar el servicio vnstat, es necesario inicializar la
base de datos para cada interfaz de red que se desee monitorear, utilizando el siguiente comando (por ejemplo
para la interfaz eth0):

# vnstat -u -i eth0

Se genera el archivo de base de datos /var/lib/vnstat/eth0.

Luego es posible iniciar el servicio para que se recolecte información periódicamente (de forma similar a la
herramienta systat aunque esta utiliza cron jobs, algún día le dedicaré un artículo a systat):

# service vnstat start

O también ejecutando:

# /etc/init.d/vnstat start

El servicio colecta y registra datos de consumo de ancho de banda diarios y mensuales. Ejecutando
simplemente vnstat, es posible ver el resumen de tráfico registrado hasta el momento (desde que inició el
servicio) y un estimado del consumo diario y mensual, discriminado por tráfico entrante (rx) y saliente (tx):

# vnstat
Database updated: Mon Jun 2 09:06:12 2014

eth0 since 05/26/14

rx: 192.21 MiB tx: 2.89 GiB total: 3.08 GiB

monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
May '14 171.28 MiB | 2.56 GiB | 2.72 GiB | 8.53 kbit/s
Jun '14 20.93 MiB | 342.74 MiB | 363.67 MiB | 25.00 kbit/s
------------------------+-------------+-------------+---------------
estimated 435 MiB | 7.26 GiB | 7.69 GiB |

daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
yesterday 14.16 MiB | 262.30 MiB | 276.46 MiB | 26.21 kbit/s
today 6.77 MiB | 80.43 MiB | 87.20 MiB | 21.80 kbit/s
------------------------+-------------+-------------+---------------
estimated 15 MiB | 210 MiB | 225 MiB |
Para obtener una curva del tráfico de las últimas 24 horas, discriminado por hora, ejecutar vnstat -h:

# vnstat -h
eth0 10:30
^ t
| t t
| t t
| t t
| t t t t t
| t t t t t t t t
| t t t t t t t t t t
| t t t t t t t t t t t t t t t
| t t t t t t t t t t t t t t t t t
| t t t t t t t t t t t t t t t t t t t t t
-+--------------------------------------------------------------------------->
| 11 12 13 14 15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10

h rx (KiB) tx (KiB) h rx (KiB) tx (KiB) h rx (KiB) tx (KiB)


11 414 6425 19 1063 21161 03 270 2273
12 500 8819 20 1045 22250 04 296 3185
13 611 11526 21 655 12953 05 261 2131
14 638 11208 22 745 15310 06 473 6769
15 921 19738 23 842 17259 07 843 6737
16 814 17952 00 780 12921 08 3056 33850
17 917 23741 01 506 9606 09 2464 35413
18 558 12097 02 306 3825 10 1592 23164

De forma similar, es posible obtener un registro del tráfico diario (vnstat -d) y mensual (vnstat -m):

# vnstat -d

eth0 / daily

day rx | tx | total | avg. rate


------------------------+-------------+-------------+---------------
05/26/14 21.69 MiB | 398.49 MiB | 420.18 MiB | 39.84 kbit/s
05/27/14 47.76 MiB | 674.90 MiB | 722.66 MiB | 68.52 kbit/s
05/28/14 10.76 MiB | 114.36 MiB | 125.12 MiB | 11.86 kbit/s
05/29/14 27.11 MiB | 546.12 MiB | 573.23 MiB | 54.35 kbit/s
05/30/14 46.85 MiB | 632.92 MiB | 679.77 MiB | 64.45 kbit/s
05/31/14 17.11 MiB | 250.27 MiB | 267.38 MiB | 25.35 kbit/s
06/01/14 14.16 MiB | 262.30 MiB | 276.46 MiB | 26.21 kbit/s
06/02/14 10.97 MiB | 139.60 MiB | 150.58 MiB | 32.10 kbit/s
------------------------+-------------+-------------+---------------
estimated 22 MiB | 312 MiB | 334 MiB |
# vnstat -m

eth0 / monthly

month rx | tx | total | avg. rate


------------------------+-------------+-------------+---------------
May '14 171.28 MiB | 2.56 GiB | 2.72 GiB | 8.53 kbit/s
Jun '14 25.13 MiB | 401.91 MiB | 427.04 MiB | 28.03 kbit/s
------------------------+-------------+-------------+---------------
estimated 519 MiB | 8.13 GiB | 8.64 GiB |

Es una herramienta interesante para medir el consumo promedio (ver columna avg. rate), cada vez que se
necesita calcular el ancho de banda a contratar para un nuevo servidor. Claro que también se deben considerar
los picos de consumo por hora, para que las respuestas del servidor lleguen a tiempo a los clientes, de lo
contrario se puede ver perjudicado el rendimiento del mismo.

También podría gustarte