TOP(1)

NOME
top - mostra i processi che usano più CPU

SINTASSI
top [-] [d delay] [q] [c] [S] [s] [i]

DESCRIZIONE
top fornisce in tempo reale istantanee dell'attività del processore. Mostra una lista dei task del sistema che fanno un uso più intenso della CPU, e può mettere a disposizione un'interfaccia interattiva per manipolare i processi. Può ordinare i task in base all'uso della CPU, all'uso della memoria e al tempo d'esecuzione. top può essere meglio configurato rispetto al top standard del pacchetto procps. Molte feature possono essere selezionate con comandi interattivi o specificandole nel file di configurazione personale o dell'intero sistema. Si veda sotto per ulteriori informazioni.

OPZIONI
Specifica l'intervallo tra gli aggiornamenti della schermata. Lo si può cambiare con il comando interattivo s. Fa si che top si aggiorni senza nessun ritardo. Se il chiamante ha i privilegi del superuser, top gira alla più alta priorità possibile. Specifica il cumulative mode, nel quale ogni processo è mostrato con il tempo di CPU che conprende anche quello speso dai figli che sono già terminati. È come il flag -S di ps(1). Si veda sotto la discussione del comando interattivo S. Dice a top di girare in secure mode. Ciò disabilita i pericoli potenziali dei comandi interattivi (vedere sotto). Un top sicuro è una cosa elegante da lasciar girare in un terminale di scorta. Avvia top ignorando qualsiasi processo idle o zombie. Si veda sotto il comando interattivo i. Mostra la riga di comando invece del solo nome del comando. Il comportamento di default è stato cambiato in quanto questo sembra essere più utile.

DESCRIZIONE DEI CAMPI
top mostra una varietà di informazioni sullo stato del processore. La schermata di default è aggiornata ogni 5 secondi, ma questo può essere cambiato con l'opzione d in riga di comando o con il comando interattivo s. Questa riga mostra da quanto tempo il sistema è ``su'', e i tre carichi medi del sistema. I carichi medi sono il numero medio di processi pronti per essere eseguiti durante gli ultimi 1, 5 e 15 minuti. Questa riga è come l'output di uptime(1). La visualizzazione dell'uptime può essere disattivata (e riattivata) con il comando interattivo l. Il numero totale di processi in esecuzione quando è stato fatto l'ultimo aggiornamento. Questo è poi suddiviso nel numero di task che sono running, sleeping, stopped, o undead. La visulizzazione di processes e states può essere disattivata (e riattivata) con il comando interattivo t. Mostra la percentuale del tempo di CPU speso in user mode, system mode, niced task, e idle (i niced task sono solo quelli il cui valore nice è negativo). Il tempo speso in niced task sarà contato anche in system e user time, così il totale sarà più del 100%. La visulizzazione di processes e states può essere disattivata (e riattivata) con il comando interattivo t. Statistiche sull'uso della memoria, incluse la memoria complessiva disponibile, la memoria libera (free), la memoria condivisa (shrd), e la memoria usata per i buffer. La visualizzazione della memoria può essere disattivata (e riattivata) con il comando interattivo m. Statistiche sulla swap, incluse lo spazio di swap totale, lo spazio di swap disponibile, e lo spazio di swap usato. Questo e Mem sono in pratica l'output di free(1). Il process ID di ognuno dei task. Il parent process ID di ognuno dei task. Lo user ID del proprietario del task. Il nome utente del proprietario del task. La priorità del task. Il valore nice del task. Valori negativi corrispondono a priorità più basse. Sono qui mostrati la dimensione, in Kbyte, del codice del task più i dati più lo stack. La dimensione del codice del task. Da strani valori per i processi del kernel e non funziona per i processi ELF. Dimensione di Data + Stack. Non funziona per i processi ELF. Dimensione del text residente. Dimensione della porzione del task swappata. Dimensione della pagine marcate dirty. Dimensione delle library page usate. Non funziona per i processi ELF. È qui mostrato l'ammontare, in Kbyte, delle memoria fisica usata del task. Per i processi ELF sono qui contate anche le library page usate, mentre ciò non è fatto per gli a.out. L'ammontare della memoria condivisa usata del task. È qui mostrato lo stato del processo. Lo stato è S per sleeping, D per uninterruptible sleep, R per running, Z per zombie, oppure T per stopped o traced. Questi stati sono seguiti da < per un processo con un valore di nice negativo, da N per un processo con un valore di nice positivo, da W per un processo swappato (questo non funziona correttamente per i processi kernel). A seconda dalla disponibilità di /boot/psdatabase o della kernel link map /boot/System.map mostra l'indirizzo o il nome della funzione kernel sulla quale il task è in sleep. Il tempo di CPU totale usato dal task da quando è partito. Se è abilitato il cumulative mode, include anche il tempo di CPU usato dai suoi processi figlio che sono terminati. Il cumulative mode lo si può abilitare con l'opzione S in riga di comando oppure con il comando interattivo S. L'etichetta sulla riga di header sarà cambiata in CTIME. La porzione del task del tempo di CPU dall'ultimo aggiornamento della schermata, espressa come percentuale del tempo di CPU totale. La porzione del task della memoria fisica. La riga di comando del task; sarà troncata se è troppo lunga per essere mostrata in una riga. Sarà mostrata la riga di comando completa per i task in memoria, mentre sarà mostrata solo il nome del programma fra parentesi per i task swappati (per esempio, "(getty)"). questi campi del top kmem non sono supportati.

COMANDI INTERATTIVI
Mentre top è in esecuzione sono riconosciuti diversi comandi ``single-key''. Alcuni sono disabilitati se è stata data l'opzione s in riga di comando. Cancella e riscrive la schermata. Mostra un schermata d'aiuto che da una breve sommario dei comandi, e lo stato dei secure e cumulative mode. Killa un processo. Sarà chiesto il PID del task, e il signal da inviare. Per un kill normale, inviare il signal 15. Per un kill sicuro, ma piuttosto brutale, inviare il signal 9. Il signal di default, come per kill(1), è il 15, SIGTERM. Questo comando non è disponibile in secure mode. Ignora i processi idle e zombie. Cambia il numero di processi da mostrare. Sarà chiesto di inserire un numero. Ciò ignora la determinazione automatica del numero di processi da mostrare, basata sulla misura delle dimensioni della finestra. Se è specificato 0, allora top mostrerà tanti processi quanti ce ne stanno sullo schermata; è il default. Esce. Re-nice un processo. Sarà chiesto il PID del task, e il nuovo valore del nice. L'inserimento di un valore positivo fa si che il processo sia ``niced'' ad un valore negativo, e perda di priorità. Se top è eseguito da root, può essere immesso un valore negativo che assegna ad un processo una priorità più alta di quella normale. Questo comando non è disponibile in secure mode. Abilita il cumulative mode, l'equivalente di ps -S, cioè, i tempi di CPU comprenderanno anche i processi figlio defunct. Per alcuni programmi, come i compilatori, che lavorano con fork in molti task separati, il modo normale li fa apparire meno esigenti di quello che in realtà sono. Per gli altri, come le shell e init, questo comportamento è corretto. In ogni caso, si provi il cumulative mode per una visione alternativa dell'uso della CPU. Cambia l'intervallo tra gli aggiornamenti. Sarà chiesto di inserire l'intervallo temporale, in secondi, tra gli aggiornamenti. Valori frazionari sono riconosciuti fino ai microsecondi. L'inserimento di 0 causa un aggiornamento continuo. Si noti che valori bassi causano delle schermate praticamente illeggibili, e un grosso incremento del carico. Questo comando non è disponibile in secure mode. Aggiunge o rimuove campi da mostrare nella schermata. Si veda sotto per ulteriori informazioni. Cambia l'ordine dei campi visualizzati. Si veda sotto per ulteriori informazioni. Disabilita (riabilita) la visualizzazione delle informazioni sul carico medio e l'uptime. Disabilita (riabilita) la visualizzazione delle informazioni sulla memoria. Disabilita (riabilita) la visualizzazione delle informazioni sui processi e sullo stato della CPU. Disabilita (riabilita) la visualizzazione del nome del comando o dell'intera riga di comando. Ordina i task in base all'uso di memoria residente. Ordina i task in base all'uso della CPU (default). Ordina i task in base al tempo (o al tempo comulativo). Scrive la configurazione corrente sul file ~/.toprc. Questo è il modo raccomandato per scrivere il file di configurazione di top.

Le schermate Fields e Order
Dopo aver premuto f, F, o o O sarà mostrata una schermata che specifica l'ordine dei campi nella riga superiore e una breve descrizione del contenuto dei campi. La stringa dell'ordine dei campi usa la seguente sintassi: se la lettera nella stringa dei campi corrispondente al campo è maiuscola, il campo sarà mostrato. Ciò è mostrato anche da un asterisco davanti alla descrizione del campo. L'ordine dei campi corrisponde all'ordine nella stringa. Dalla schermata Fields si può abilitare o disabilitare la visualizzazione di un campo premendo la lettera corrispondente. Dalla schermata Order è possibile spostare un campo a sinistra premendo la corrispondente lettera maiuscola, a destra premendo la minuscola.

File di Configurazione
Top legge la sua configurazione di default da due file, /etc/toprc e ~/.toprc. Il file di configurazione globale può essere usato per restringere l'uso di top al secure mode per gli utenti non privilegiati. Se si desidera ciò, il file dovrebbe contenere su un'unica riga una 's' per specificare il secure mode e un numero d (2<=d<=9) per il delay di default (in secondi). Il file si configurazione personale contiene due righe. La prima riga contiene lettere maiuscole e minuscole che specificano quali campi e in quale ordine devono essere visualizzati. Le lettere corrispondono alle lettere nelle schermate Fields e Order di top. Sebbene non sia molto istruttivo, è raccomandato di selezionare i campi e l'ordine da un processo top in esecuzione e poi salvare usando il comando interattivo W. La seconda riga è più interessante (e importante). Contiene informazioni sulle altre opzioni. Si noti che se si è salvata una configurazione in secure mode, non si avrà un top ``insicuro'' senza rimuovere la 's' minuscola dalla seconda riga del proprio ~/.toprc. Un numero specifica l'intervallo di tempo tra due aggiornamenti, una 'S' maiuscola il cumulative mode, una 'i' minuscola il no-idle mode. Come in modo interattivo, una 'm', 'l' e 't' minuscole sopprimono la visulizzazione delle informazioni sulla memoria, sull'uptime, sui processi e sullo stato della CPU, rispettivamente. Attualmente la modifica dell'ordinamento di default (in base all'uso della CPU) non è supportata.

NOTE
Questo top basato su proc funziona leggendo i file nel filesystem proc, montato su /proc. Se /proc non è montato, top non funzionerà.

%CPU mostra la percentuale cputime/realtime nell'intervallo temporale tra gli aggiornamenti. Per il primo aggiornamento, è usato un intervallo corto, e top stesso domina l'uso della CPU. Dopo di questo, top andrà sotto, e sarà disponibile una stima più realistica dell'uso della CPU.

I campi SIZE e RSS non contano le page table e la task_struct del processo; questi sono almeno 12K di memoria che è sempre residente. SIZE è la dimensione virtuale del processo (code+data+stack).

Si ricordi che un processo deve morire affinché il suo tempo sia registrato in quello del padre in cumulative mode. Forse un comportamento più utile sarebbe di risalire da ogni processo, aggiungendo il tempo, ma ciò sarebbe più oneroso, e probabilmente proibitivo. In ogni caso ciò potrebbe rendere il comportamento di top incompatibile con ps.

FILE
/etc/toprc File di configurazione globale. ~/.toprc File di configurazione personale.

VEDERE ANCHE
ps(1), free(1), uptime(1), kill(1), renice(1).

BACHI
Se la finestra è più piccola di 70x7, top non formatterà correttamente le informazioni. Molti campi hanno ancora problemi con i processi ELF. La schermata di aiuto non è ancora ottimizzata per finestre con meno di 25 righe.

AUTORE
top è stato scritto originariamente da Roger Binns, basandosi sul programma ps di Branko Lankester (lankeste@fwi.uva.nl). Robert Nation (nation@rocket.sanders.lockheed.com) lo ha significativamente riscritto per usare il filesystem proc, basandosi sul programma ps (proc-based) di Michael K Johnson (johnsonm@sunsite.unc.edu). Diverse modifiche, incluso l'inserimento dei secure e cumulative mode, e una pulizia generale, sono state fatte da Michael Shields (mjshield@nyx.cs.du.edu). Pesantemente cambiato per includere il supporto per i campi configurabili e altre nuove opzioni. Ulteriore pulizia e uso della nuova interfaccia readproc di Helmut Geyer (Helmut.Geyer@iwr.uni-heidelberg.de).