Come scoprire quanta memoria richiede un programma


8

Uso htop per guardare i miei processi, ma la maggior parte dei servizi eseguiti sono multi-thread, quindi sono mostrati su più righe con un% di utilizzo della memoria che in alcuni casi è uguale per tutti, a volte varia tra di loro.

Ad esempio, nel caso di Firefox può elencare 15 processi, ciascuno dei quali consuma il 13% di memoria.

Posso sapere ad hoc quanta memoria è Firefox, MySQL, alcuni script fcgi o qualcosa sta consumando? poiché l'output htop sembra fuorviante.

Risposte:


6

La maggior parte delle implementazioni principali ha un modo per attivare o disattivare la visualizzazione dei thread.

  • htop: nel menu "Opzioni di impostazione / visualizzazione", "Nascondi thread delle aree utente".
  • Linux top: premere Hper attivare / disattivare la visualizzazione dei thread (ma sono disattivati ​​per impostazione predefinita).
  • OpenBSD top: premi Tper attivare o disattivare la visualizzazione dei thread (ma sono disattivati ​​per impostazione predefinita).

Nota che i mapping di memoria, e quindi l'occupazione di memoria, sono una proprietà di un processo, quindi vedrai sempre gli stessi numeri per ogni thread in un processo. Se vedi numeri diversi, significa che ci sono più processi.

Non esiste un modo semplice per scoprire il consumo totale di memoria di un insieme di processi perché il concetto non è ben definito. Parte della memoria potrebbe essere condivisa; questo accade continuamente con le librerie condivise e inoltre i processi correlati (come più istanze di un server) hanno maggiori probabilità di utilizzare la memoria condivisa per scambiare dati. Se aggiungi solo le cifre, otterrai spesso un numero molto più grande della memoria effettivamente utilizzata.


1
Non mi rendevo conto che il concetto di memoria del processo non è ben definito, penso che sia ciò che ha più senso. Grazie
Jjdelc il

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.