¿Alguna vez te has encontrado en una situación en la que necesitas saber quién está usando todo tu ancho de banda y en qué lo está usando? Ciertamente lo he hecho y quiero presentarte una herramienta que puede ayudarte a responder esa pregunta. Cuando trabajaba como administrador de soporte, me encontraba rutinariamente tratando de ejecutar trabajos de replicación que provocaban cuellos de botella en la interfaz. La interfaz y el hardware asociado eran más que capaces de impulsar más de 10 Gb. Sin embargo, solo vi alrededor de 3 Gb de eso. Entonces surge la pregunta, especialmente en una interfaz dedicada, ¿quién está consumiendo todo el ancho de banda? ¿O hay otro problema en juego?
Las mejores técnicas de solución de problemas son los pasos rápidos y sin esfuerzo que toma para eliminar uno de los muchos resultados potenciales. Introduce iftop
.
¿Qué hace?
Al igual que top y htop, el iftop
El comando se utiliza para el uso de recursos en su sistema. Específicamente, monitorea el ancho de banda de las interfaces ethernet activas. Cuando se aplica a la situación que describí anteriormente, puede ejecutar iftop
comando para ver qué está usando realmente el ancho de banda en la interfaz de replicación de datos. Esto puede ser increíblemente eficiente si se tiene en cuenta cuánto tiempo puede llevarle llegar a esa conclusión mediante la resolución de problemas de la propia interfaz. No hay problema, solo un exceso de actividad en la interfaz.
Veamos el proceso de instalación y uso de esta práctica herramienta.
Instalación
Antes de instalar el iftop
herramienta, necesita algunos paquetes de requisitos previos. Necesitas instalar libpcap
(que se utiliza para capturar los datos de la interfaz en tiempo real), así como libncurses
(una API utilizada para construir interfaces basadas en texto independientes de una terminal). Estoy usando una máquina virtual Fedora 32 para demostrar esta herramienta. Si está utilizando un sistema operativo diferente, su instalación variará ligeramente. Para instalar:
[tcarrigan@client ~]$ sudo yum -y install libpcap-devel ncurses ncurses-devel
[sudo] password for tcarrigan:
Fedora 32 openh264 (From Cisco) - x86_64 4.8 kB/s | 989 B 00:00
Fedora 32 openh264 (From Cisco) - x86_64 3.3 kB/s | 2.5 kB 00:00
Fedora Modular 32 - x86_64 28 kB/s | 15 kB 00:00
Fedora Modular 32 - x86_64 - Updates 38 kB/s | 7.6 kB 00:00
Fedora Modular 32 - x86_64 - Updates 189 kB/s | 1.0 MB 00:05
Fedora 32 - x86_64 - Updates 46 kB/s | 10 kB 00:00
Fedora 32 - x86_64 - Updates 221 kB/s | 12 MB 00:54
Fedora 32 - x86_64 40 kB/s | 15 kB 00:00
Package ncurses-6.1-15.20191109.fc32.x86_64 is already installed.
Dependencies resolved.
==============================================================================================
Package Architecture Version Repository Size
==============================================================================================
Installing:
libpcap-devel x86_64 14:1.9.1-3.fc32 fedora 136 k
ncurses-devel x86_64 6.1-15.20191109.fc32 fedora 503 k
Installing dependencies:
ncurses-c++-libs x86_64 6.1-15.20191109.fc32 fedora 39 k
Transaction Summary
==============================================================================================
Install 3 Packages
Total download size: 678 k
Installed size: 1.2 M
Downloading Packages:
(1/3): ncurses-c++-libs-6.1-15.20191109.fc32.x86_64.rpm 55 kB/s | 39 kB 00:00
(2/3): libpcap-devel-1.9.1-3.fc32.x86_64.rpm 159 kB/s | 136 kB 00:00
(3/3): ncurses-devel-6.1-15.20191109.fc32.x86_64.rpm 174 kB/s | 503 kB 00:02
----------------------------------------------------------------------------------------------
Total 181 kB/s | 678 kB 00:03
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : ncurses-c++-libs-6.1-15.20191109.fc32.x86_64 1/3
Installing : ncurses-devel-6.1-15.20191109.fc32.x86_64 2/3
Installing : libpcap-devel-14:1.9.1-3.fc32.x86_64 3/3
Running scriptlet: libpcap-devel-14:1.9.1-3.fc32.x86_64 3/3
Verifying : libpcap-devel-14:1.9.1-3.fc32.x86_64 1/3
Verifying : ncurses-c++-libs-6.1-15.20191109.fc32.x86_64 2/3
Verifying : ncurses-devel-6.1-15.20191109.fc32.x86_64 3/3
Installed:
libpcap-devel-14:1.9.1-3.fc32.x86_64 ncurses-c++-libs-6.1-15.20191109.fc32.x86_64
ncurses-devel-6.1-15.20191109.fc32.x86_64
Complete!
Una vez que haya instalado los paquetes de requisitos previos, puede instalar el iftop
real. herramienta:
[root@client ~]# dnf install iftop
Last metadata expiration check: 0:01:45 ago on Thu 08 Oct 2020 06:22:52 PM EDT.
Package iftop-1.0-0.23.pre4.fc32.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[ A los lectores también les gustó:11 comandos de Linux sin los que no puedo vivir ]
Uso básico
Una vez que tenga todos los paquetes necesarios instalados, ejecute iftop
para tener una idea de la salida y la información presentada. Tenga en cuenta que sin ninguna opción, iftop
se ejecutará en la interfaz predeterminada (eth0 en la mayoría de los casos).
Para ejecutar el comando predeterminado:
[root@client ~]# iftop

De izquierda a derecha, tenga en cuenta lo siguiente:
- Nombres de host resueltos (origen o destino, señalados por las flechas)
- Velocidades promedio de transmisión de datos (intervalos de 2, 10 y 40 segundos)
Verá las tasas de transmisión TOTAL de TX (transferido) RX (recibido) en la parte inferior de la salida. También hay cifras de totales y promedios acumulados, así como números máximos.
Ser específico
A pesar de lo poderosa que es esta herramienta, puede brindarle demasiada información en un entorno ocupado. Para sortear este problema, utilizaremos opciones específicas para filtrar el resultado presentado. En el escenario que describí anteriormente, solo me gustaría ver los análisis en torno a la interfaz de replicación específica que estaba tratando de usar. Para ver una interfaz en particular, vamos a agregar -i
opción.
[tcarrigan@client ~] $ sudo iftop -i enp0s3

Aquí podemos ver la misma información presentada que antes. Sin embargo, esto solo está mirando la interfaz enp0s3
.
Si desea ver la información de IP, use -n
marca para deshabilitar la resolución del nombre de host.
[tcarrigan@client ~] $ sudo iftop -n

Puede ver en la captura de pantalla anterior que las direcciones IP ahora están visibles. Esta puede ser una forma mucho más fácil de solucionar problemas en entornos grandes donde los nombres de host pueden volverse confusos.
Hay varias otras opciones que puede utilizar para marcar realmente la información que se le presenta. La siguiente lista se extrae directamente de la página de manual, que se puede encontrar ejecutando man iftop
.

[ Curso gratuito en línea:Descripción general técnica de Red Hat Enterprise Linux. ]
Resumen
Si llegaste hasta aquí, miraste la utilidad que ofrece iftop
y las opciones para el uso dirigido. Cuando necesite averiguar qué ancho de banda se está utilizando y hacia dónde se dirige o desde dónde, iftop
puede ser un activo poderoso. Puede filtrar su salida para que sea tan específica como lo necesite utilizando la gran variedad de opciones disponibles, lo que hace que sea una obviedad para mantener en su cinturón de herramientas de administrador de sistemas.