Ti sei mai trovato in una situazione in cui hai bisogno di sapere chi sta consumando tutta la tua larghezza di banda e su cosa la sta usando? Certamente ho e voglio presentarti uno strumento che può aiutarti a rispondere a questa domanda. Quando ho lavorato come amministratore del supporto, mi sono ritrovato regolarmente a provare a eseguire processi di replica che creavano colli di bottiglia nell'interfaccia. L'interfaccia e l'hardware associato erano più che in grado di spingere verso l'alto di 10 Gb. Tuttavia, ho visto solo circa 3 Gb di quello. Quindi sorge la domanda, specialmente su un'interfaccia dedicata, chi sta consumando tutta la larghezza di banda? O c'è un altro problema in gioco?
Le migliori tecniche di risoluzione dei problemi sono i passaggi rapidi e senza sforzo che esegui per eliminare uno dei tanti potenziali risultati. Inserisci iftop
.
Cosa fa?
Proprio come top e htop, il iftop
comando viene utilizzato per l'utilizzo delle risorse sul sistema. In particolare, monitora la larghezza di banda delle interfacce ethernet attive. Quando applicato alla situazione che ho descritto sopra, puoi eseguire iftop
comando per vedere cosa sta effettivamente utilizzando la larghezza di banda nell'interfaccia di replica dei dati. Questo può essere incredibilmente efficiente se si considera quanto tempo potrebbe essere necessario per giungere a tale conclusione risolvendo i problemi dell'interfaccia stessa. Nessun problema, solo un eccesso di attività sull'interfaccia.
Diamo un'occhiata al processo di installazione e utilizzo di questo pratico strumento.
Installazione
Prima di installare iftop
strumento, sono necessari alcuni pacchetti prerequisiti. Devi installare libpcap
(usato per acquisire i dati dell'interfaccia in tempo reale), così come libncurses
(un'API utilizzata per creare interfacce testuali indipendenti da un terminale). Sto usando una VM Fedora 32 per dimostrare questo strumento. Se stai utilizzando un sistema operativo diverso, l'installazione varierà leggermente. Per installare:
[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 volta installati i pacchetti prerequisiti, puoi installare l'effettivo iftop
strumento:
[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!
[ Ai lettori è piaciuto anche: 11 comandi Linux di cui non posso fare a meno]
Utilizzo di base
Una volta installati tutti i pacchetti richiesti, esegui iftop
per avere un'idea dell'output e delle informazioni presentate. Tieni presente che senza alcuna opzione, iftop
verrà eseguito sull'interfaccia predefinita (eth0 nella maggior parte dei casi).
Per eseguire il comando predefinito:
[root@client ~]# iftop
Da sinistra a destra, nota quanto segue:
- Nomi host risolti (origine o destinazione, indicati dalle frecce)
- Velocità di trasmissione dati media (intervalli di 2, 10, 40 secondi)
Vedrai le velocità di trasmissione TX (trasferita) RX (ricevuta) TOTALE nella parte inferiore dell'output. Ci sono anche cifre per totali cumulativi e medie, nonché numeri di picco.
Diventare specifico
Per quanto potente sia questo strumento, può fornirti troppe informazioni in un ambiente frenetico. Per aggirare questo problema, utilizzeremo opzioni specifiche per filtrare l'output presentato. Nello scenario che ho descritto sopra, vorrei solo vedere l'analisi attorno all'interfaccia di replica specifica che stavo cercando di utilizzare. Per guardare un'interfaccia particolare, aggiungeremo il -i
opzione.
[tcarrigan@client ~] $ sudo iftop -i enp0s3
Qui possiamo vedere le stesse informazioni presentate come prima. Tuttavia, questo riguarda solo l'interfaccia enp0s3
.
Se desideri visualizzare le informazioni IP, utilizza il -n
flag per disabilitare la risoluzione del nome host.
[tcarrigan@client ~] $ sudo iftop -n
Puoi vedere dallo screenshot sopra che gli indirizzi IP sono ora visibili. Questo può essere un modo molto più semplice per risolvere i problemi in ambienti di grandi dimensioni in cui i nomi host possono creare confusione.
Ci sono varie altre opzioni che puoi utilizzare per comporre davvero le informazioni che ti vengono presentate. L'elenco seguente viene estratto direttamente dalla pagina man, che può essere trovata eseguendo man iftop
.
[ Corso online gratuito:panoramica tecnica di Red Hat Enterprise Linux. ]
Riepilogo
Se sei arrivato così lontano, hai guardato l'utilità offerta da iftop
e le opzioni per un utilizzo mirato. Quando hai bisogno di capire quale larghezza di banda viene utilizzata e dove va o da dove, iftop
può essere una risorsa potente. Puoi filtrare il suo output in modo che sia specifico in base alle tue esigenze utilizzando la vasta gamma di opzioni disponibili, rendendolo un gioco da ragazzi da tenere nella cintura degli strumenti di amministratore di sistema.