Come posso monitorare l'uso della memoria?

Ho usato top per vedere l'uso della memoria al momento. Ma vorrei monitorare l'uso della memoria per un periodo di tempo. Ad esempio avviare il monitoraggio e poi eseguire alcuni comandi, e infine fermare il monitoraggio e vedere quanta memoria è stata utilizzata durante il periodo.

Come posso fare questo su Ubuntu Server?

Immagino che potrei avviare un cronjob ogni 5° secondo o giù di lì, e invocare un comando che registri l'attuale utilizzo della memoria in un file di testo. Ma quale comando dovrei usare per ottenere l'attuale utilizzo della memoria in un formato che sia facile da registrare in un file di testo?

Soluzione

Raccomando di combinare le risposte precedenti

watch -n 5 free -m

Si noti che a Linux piace usare qualsiasi memoria extra per cache dei blocchi del disco rigido. Quindi non si vuole guardare solo la Mem libera. Si vuole guardare la colonna free della riga -/+ buffers/cache:. Questo mostra quanta memoria è disponibile per le applicazioni. Quindi ho appena eseguito free -m e ho ottenuto questo:

             total       used       free     shared    buffers     cached
Mem:          3699       2896        802          0        247       1120
-/+ buffers/cache:       1528       2170
Swap:         1905         62       1843

So che sto usando 1528 MB e ho 2170 MB liberi.

Nota: Per fermare questo ciclo di watch potete semplicemente premere Ctrl+C.

Commentari (7)

Usate il comando free. Per esempio, questo è il risultato di free -m:

             total       used       free     shared    buffers     cached
Mem:          2012       1666        345          0        101        616
-/+ buffers/cache:        947       1064
Swap:         7624          0       7624

free -m | grep /+ restituirà solo la seconda linea:

-/+ buffers/cache:        947       1064
Commentari (1)

Il comando watch può essere utile. Prova watch -n 5 free per monitorare l'uso della memoria con aggiornamenti ogni cinque secondi.

Commentari (1)