Esiste un comando top-like che mostra le larghezze di banda della rete e gli accessi ai file dei processi in esecuzione


31

Ad esempio, vorremmo vedere:

PROCESS       IF       TX       RX       FILE(regular) R/W
prog1         eth0     200kB/s  12kB/s   --            --
              wlan0    12kB/s   100kB/s  --            --
              --       --       --       file1         R
              --       --       --       file2         R
              --       --       --       file3         W
prog2         eth0     0kB/s    200kB/s  --            --
              --       --       --       file4         W
              --       --       --       file5         W

È possibile? nethogs mostra solo TX / RX, mentre lsof mostra solo gli accessi ai file.

Attualmente sto facendo un processo in 2 passaggi in questo modo:

sudo nethogs
sudo lsof -a -d 1-999 -c hogging_program /

Esiste un modo migliore?

Risposte:


5

Per quanto ne so, no. Quello che stai cercando di realizzare è possibile combinando più comandi come stai attualmente facendo, anche se non conosco altre app che ti fornirebbero dati più facili da analizzare (ndr: un'altra risposta suggerita iftop che non sapevo ha aggiunto un modalità di output del testo a riga singola compatibile con pipe). Con alcuni script di shell intelligenti, dati in pipe e un po 'di formattazione manuale, potresti avvicinarti almeno all'output che stai cercando.

La tua ricerca di qualcosa che mostri sia la rete sia le statistiche dei file - che sarebbero fornite da due diverse parti del sistema operativo - sembra essere in contrasto con alcuni inquilini di "La filosofia UNIX:"

  • Fai in modo che ogni programma faccia bene una cosa. Per fare un nuovo lavoro, costruisci di nuovo piuttosto che complicare i vecchi programmi aggiungendo nuove funzionalità.
  • Aspettatevi che l'output di ogni programma diventi l'input per un altro programma, ancora sconosciuto. Non ingombrare l'output con informazioni estranee.

Ciò è particolarmente evidente nei programmi che producono testo, come lsof. Di solito non vedi * i programmi della console NIX che forniscono un'interfaccia utente tanto quanto i dati da reindirizzare in un altro programma, o possibilmente uno script che utilizza comandi di shell come cut per creare output personalizzati.

Doug McIlroy riassunse la sua precedente dichiarazione anni dopo:

Scrivi programmi che fanno una cosa e la fanno bene. Scrivi programmi per lavorare insieme. Scrivi programmi per gestire i flussi di testo, perché questa è un'interfaccia universale.

Anche se potrebbe non aiutarti a ottenere l'output formattato che stai cercando, The Art of UNIX Programming è una buona lettura e dove ho trovato fonti per quelle citazioni.


7
Questo non fornisce una risposta alla domanda.
gatto,

È possibile? - Credo che ciò che stai cercando di realizzare sia probabilmente il migliore (e per quanto ne so solo) possibile combinando più comandi come stai attualmente facendo. -- Esiste un modo migliore? Credo che quello che stai provando sia probabilmente il migliore e possibile solo convincere più comandi ... con alcuni script di shell intelligenti e dati di piping, potresti ottenere l'output [formattato nel modo] che stai cercando. - quale domanda ho perso? potrebbe essere meglio rispondere con una menzione di script shell condotti, ma il tuo feedback utile non ha menzionato che: p è la risposta corretta uno script funzionante?
prescritto il

Credo che ciò che stai cercando di realizzare sia probabilmente meglio descritto come "rispondi a una domanda"; non insegnare a qualcuno la filosofia.
Gardner Bickford,

Ill metterò la risposta in modo più chiaro in cima. Senza la lezione di filosofia, tuttavia, nessuno impara perché la risposta è no e può vagare di nuovo su Internet, senza mai capire le sagge parole di Linux Torvalds; "La filosofia di Linux è 'Ridi di fronte al pericolo!' Oops. Sbagliato. "Fallo da solo." Questo è tutto."
prescritto il

17

Prova iftop per network e pidstat da sysstat .

Entrambi sono probabilmente un'installazione facile (apt-get, ecc.) Per la distribuzione di vostra scelta.


6

atopti dà il modo di darti quello che vuoi, anche se non sarebbe specifico come abbattere l'I / O per filehandle. Per ottenere statistiche complete sulla rete è necessario applicare una patch del kernel.


2

iptraf può essere molto utile e trovare maiali di larghezza di banda.


5
L'aggiunta di ulteriori informazioni / spiegazioni renderà migliore la tua risposta.
mtk
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.