Domanda

Qual è il modo corretto per ottenere la dimensione del processo Solaris, HP-UX E AIX?Dovremmo usare top O ps -o vsz o qualcos'altro?

È stato utile?

Soluzione

Le definizioni esatte di vsize, rss, rprvt, rshrd, e altre abbreviazioni dall'aspetto oscuro variano da sistema operativo a sistema operativo.Le pagine di manuale per il top E ps i comandi avranno una sorta di descrizione, ma tutte queste descrizioni sono notevolmente semplificate (o sono basate su implementazioni del kernel estinte da tempo).
Il concetto di “dimensione del processo” è terribilmente difficile da definire nel caso generale.Le risposte in casi specifici dipendono fortemente dall'effettiva implementazione della gestione della memoria nel sistema operativo e raramente sono soddisfacenti quanto il concetto ordinato di "dimensione del processo" che esiste nella mente della maggior parte degli utenti (e della maggior parte degli sviluppatori).

Ad esempio, nessuno di questi numeri (né, probabilmente, alcuna combinazione di essi) può essere utilizzato per dirti esattamente quanti processi di questo tipo possono essere eseguiti contemporaneamente in una determinata quantità di memoria libera.Ma in realtà, la soluzione migliore è arrivarci da questo punto:perché vuoi questo numero e per cosa lo utilizzerai?Date queste informazioni, penso che otterrai risposte più utili.

Altri suggerimenti

Su Solaris, puoi ottenere informazioni dettagliate sull'utilizzo della memoria da parte di un processo con pmap comando.In particolare, pmap -x <pid> mostra quanta memoria di un processo è condivisa e quanta viene utilizzata specificamente da quel processo.Ciò è utile per calcolare l'utilizzo "marginale" della memoria di un processo: con questa tecnica puoi evitare il doppio conteggio delle librerie condivise.

Sì, hai ragione a chiudere alla VSZ.

ps u ti fornirà VSZ e RSS, che sono la dimensione della memoria virtuale e la dimensione del set residente.L'RSS indica la quantità di memoria fisica allocata al processo e VSZ è la dimensione della memoria virtuale del processo.Se sono presenti più copie di un programma in esecuzione, gran parte della memoria nel VSZ verrà condivisa tra tali processi.

Ho riassunto la dimensione del set residente per tutti i processi in questo modo (come root):

ps ax -o rss | awk '{rss += $1;} END { print rss}'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top