I processi in esecuzione su un sistema operativo vengono assegnati a diverse regioni che utilizzano uno spazio di memoria virtuale mappato alla memoria fisica in un livello di astrazione. Il kernel preserva quindi una tabella di traduzione che evidenzia ogni processo e eventuali modifiche apportate vengono aggiornate nella tabella di traduzione. Il comando PMAP è necessario per accedere a questo spazio di memoria utilizzato da ciascun processo e, in questa guida, imparerai come utilizzare il comando PMAP per visualizzare l'utilizzo della memoria mediante un processo."
Come usare PMAP
La sintassi per usare PMAP è:
PMAP [opzioni] PID […]
Pertanto, la prima cosa da fare è ottenere l'ID processo del processo particolare e ci sono diversi modi per ottenere il PID. Per ottenere rapidamente il PID di un processo, utilizzare PS Aux, quindi ottenere il nome del processo o utilizzare l'opzione PIDOF.
Ad esempio, per ottenere il PID del processo di bash:
1. Usando PS Aux
$ ps aux | Grep Bash
2. Usando pidof
$ Pidof Bash
Usando
PMAP per ottenere l'utilizzo della memoria di un singolo processo
Ora che hai il PID del tuo processo target, puoi controllare il suo utilizzo della memoria usando il comando di seguito.
$ pMAP 4959
L'output sarà:
Dall'output, puoi vedere che la prima riga evidenzia il nome del processo, in questo caso, bash e il suo ID di processo. Le righe successive iniziano con l'indirizzo di memoria mappata, seguita dalla dimensione della memoria del particolare indirizzo di memoria nei kilobyte.
Gli altri caratteri rappresentano le autorizzazioni della memoria virtuale, analizzate di seguito.
R: implica che il processo può leggere la memoria mappata.
w: implica che il processo può scrivere nella memoria mappata.
X: implica che il processo può eseguire istruzioni nella memoria mappata.
Utilizzo di PMAP per ottenere l'utilizzo della memoria di più processi
Il comando PMAP viene utilizzato con più PID separati da uno spazio per ottenere l'utilizzo della memoria. Ad esempio, se hai PIDS 1818, 1741 e 4959, il comando sarà:
$ pMAP 1818 1741 4959
L'output è simile a un singolo processo, tranne per il fatto che l'utilizzo della memoria verrà separato per ciascun processo, come mostrato di seguito.
Per l'output del processo successivo:
Ottenere un'uscita PMAP estesa
Per ottenere un formato esteso dell'utilizzo della memoria, aggiungi -x al comando PMAP come nell'esempio seguente.
$ pMAP -x 4959
L'output esteso del comando sarà:
Noterai che alcuni campi extra vengono visualizzati con l'output esteso. Ciascuno dei campi rappresenta informazioni di utilizzo della memoria diverse.
Indirizzo: Rappresenta l'indirizzo iniziale della mappatura.
Kbyte: questa è la dimensione dello spazio della memoria virtuale.
RSS: questa è la dimensione del set di residenti rappresentata in kilobyte.
Sporco: Le pagine sporche condivise e private espresse in kilobyte.
Modalità: le autorizzazioni della mappa.
Mappatura: questo è il file che sostiene la mappa e può essere '[stack]' o '[anon]'.
PMAP Show Formato del dispositivo
L'opzione -D, se utilizzata con PMAP, emette il formato del dispositivo associato al processo particolare.
$ pMAP -d 4959
Altri due campi vengono aggiunti all'output.
Compensare: rappresenta l'offset del file se la memoria è basata su file.
Dispositivo: il formato del dispositivo.
PMAP Visualizza tutto
L'opzione -x visualizza l'output esteso. Tuttavia, puoi mostrare tutto ciò che il kernel può ottenere sull'uso della memoria di un processo aggiungendo l'opzione -x.
$ pMAP -x 4959
Altre opzioni PMAP
1. Ottieni il percorso completo
Per ottenere il percorso completo dei file:
$ pMAP -P 4959
2. Ignora i nomi delle colonne
Se si desidera escludere i nomi delle colonne quando si visualizza il rapporto di output, ad esempio, quando si ottiene il nome del dispositivo:
$ pMAP -qd 4959
3. Ottieni la versione PMAP
Per vedere l'attuale versione PMAP:
$ pMAP -V
4. Pagina di aiuto PMAP
Per aprire la pagina della guida PMAP.
$ pMAP - -help
Conclusione
Quando si lavora con Linux, la comprensione della gestione della memoria può essere complicata. Fortunatamente, con l'aiuto del comando PMAP, puoi ottenere l'immagine completa di ciò che accade in memoria. Un comando PMAP è un ottimo strumento per chiunque abbia a che fare con mappe di memoria del processo. Questa guida ha coperto l'uso comune del comando PMAP Linux per iniziare.