Como posso monitorar o uso da memória?

Eu usei o top para ver o uso da memória no momento. Mas eu gostaria de monitorar o uso da memória ao longo de um período de tempo. Por exemplo, começar a monitorar e depois executar alguns comandos, e finalmente parar a monitoração e ver quanta memória foi utilizada durante o período.

Como posso fazer isto no Ubuntu Server?

Acho que eu poderia iniciar um cronjob a cada 5 segundos ou mais, e invocar um comando que registra o uso atual da memória em um arquivo texto. Mas que comando devo usar para obter o uso atual da memória em um formato que seja fácil de logar em um arquivo texto?

Solução

Eu recomendo combinar as respostas anteriores

watch -n 5 free -m

Note que o Linux gosta de usar qualquer memória extra para blocos de disco rígido cache. Então você não'não quer olhar apenas para o Mem livre. Você quer olhar para a coluna free da linha -/+ buffers/cache:. Isto mostra quanta memória está disponível para as aplicações. Então eu apenas executei o free -m e consegui isto:

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

Eu sei que I'm usando 1528 MB e tem 2170 MB grátis.

Nota: Para parar este ciclo de "relógio" basta pressionar Ctrl+C.

Comentários (7)

Use o comando **free***. Por exemplo, este é o ouput do comando 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 /+` retornará apenas a segunda linha:

-/+ buffers/cache:        947       1064
Comentários (1)

O comando watch pode ser útil. Experimente watch -n 5 grátis para monitorar o uso da memória com atualizações a cada cinco segundos.

Comentários (1)