Esame delle informazioni sul processo
Il kernel fornisce utili informazioni sul processo e sull'ambiente. Questi comandi possono essere utilizzati per visualizzare queste informazioni.
Il comando ps
Su Linux®, i thread Java™ sono implementati come thread di sistema e potrebbero essere visibili nella tabella dei processi, a seconda della distribuzione Linux .
L'esecuzione del comando ps fornisce un'istantanea dei processi correnti. Il comando ps ottiene le proprie informazioni dal filesystem /proc . Di seguito è riportato un esempio di utilizzo di ps:
ps -efwH
UID PID PPID C STIME TTY TIME CMD
cass 1234 1231 0 Aug07 ? 00:00:00 /bin/bash
cass 1555 1234 0 Aug07 ? 00:00:02 java app
cass 1556 1555 0 Aug07 ? 00:00:00 java app
cass 1557 1556 0 Aug07 ? 00:00:00 java app
cass 1558 1556 0 Aug07 ? 00:00:00 java app
cass 1559 1556 0 Aug07 ? 00:00:00 java app
cass 1560 1556 0 Aug07 ? 00:00:00 java app
- e
- Specifica di selezionare tutti i processi.
- f
- Garantisce che venga fornito un elenco completo.
- l
- Viene visualizzato in formato lungo.
- m
- Mostra i thread se non vengono visualizzati per impostazione predefinita.
- w
- Un modificatore di output che garantisce un output ampio.
- H
- Utile quando si è interessati ai sottoprocessi Java perché visualizza un elenco gerarchico. Con una visualizzazione gerarchica, è possibile determinare quale processo è il thread primordiale, quale è il gestore thread e quali sono thread secondari. Nell'esempio precedente, il processo 1555 è il thread primordiale, mentre il processo 1556 è il gestore thread. Tutti i processi secondari hanno un ID processo principale che punta al gestore thread.
Il comando top
Il comando top visualizza la maggior parte dei processi con utilizzo intensivo di CPU o di memoria in tempo reale. Fornisce un'interfaccia interattiva per la manipolazione dei processi e consente l'ordinamento in base a criteri diversi, come l'utilizzo della CPU o della memoria. Premere h durante l'esecuzione top per visualizzare tutti i comandi interattivi disponibili.
Il comando top visualizza diversi campi di informazioni per ciascun processo. Il campo del processo mostra il numero totale di processi in esecuzione, ma suddivide le informazioni in attività in esecuzione, in sospensione, arrestate o non inattive. Oltre a visualizzare PID, PPID e UID, il comando top visualizza informazioni sull'utilizzo della memoria e sullo spazio di swap. GlimemIl campo mostra le statistiche sull'utilizzo della memoria, inclusa la memoria disponibile, la memoria libera, la memoria utilizzata, la memoria condivisa e la memoria utilizzata per i buffer. Il campo di swap mostra lo spazio di swap totale, lo spazio di swap disponibile e lo spazio di swap utilizzato.
Il comando vmstat
Il comando vmstat riporta statistiche di memoria virtuali. È utile eseguire un controllo di integrità generale sul proprio sistema perché riporta il sistema nel suo insieme. I comandi come top possono essere utilizzati per ottenere informazioni più specifiche sull'operazione del processo.
Quando la si utilizza per la prima volta durante una sessione, le informazioni vengono riportate come medie dall'ultimo riavvio. Ulteriori utilizzi producono report basati su un periodo di campionamento che è possibile specificare come opzione. vmstat 3 4
visualizza i valori ogni 3 secondi per un conteggio di quattro volte. Potrebbe essere utile avviare vmstat prima dell'applicazione, indirizzare il suo output a un file e successivamente studiare le statistiche all'avvio e all'esecuzione dell'applicazione.
L'output di base di questo comando viene visualizzato nelle seguenti sezioni:
- processi
- Mostra il numero di processi in attesa di runtime, bloccati o con swap in uscita.
- Memoria
- Mostra la quantità di memoria (in KB) scambiata, libera, memorizzata nel buffer e memorizzata nella cache. Se la memoria libera viene disattiva durante alcune fasi dell'esecuzione delle applicazioni, potrebbe verificarsi una perdita di memoria.
- invertire
- Mostra i kilobyte al secondo di memoria di cui è stato eseguito lo swap in entrata e in uscita sul disco. La memoria viene scambiata su disco se non è disponibile una quantità di RAM sufficiente per memorizzarla tutta. Valori grandi qui possono essere un suggerimento che non è disponibile abbastanza RAM (anche se è normale ottenere lo scambio quando l'applicazione viene avviata per la prima volta).
- IO
- Mostra il numero di blocchi al secondo di memoria inviati e ricevuti dalle periferiche a blocchi.
- sistema
- Visualizza gli interrupt e gli switch di contesto al secondo. C'è una penalizzazione delle prestazioni associata a ogni interruttore di contesto, quindi un valore elevato per questa sezione potrebbe indicare che il programma non si ridimensiona bene.
- cpu
- Mostra una suddivisione del tempo processore tra il tempo utente, il tempo di sistema e il tempo di inattività. La figura del tempo di inattività mostra quanto è occupato un processore, con un valore basso che indica che il processore è occupato. È possibile utilizzare questa conoscenza per aiutare a capire quali aree del programma utilizzano di più la CPU.