O que está usando minha memória na minha instância do Amazon EC2?

9

Atualmente, estou executando um único nó de computação de cluster de GPU no Amazon EC2, listado como tendo 22 GB de RAM por instância. topconfirma que a instância realmente possui 22 GB de RAM, mas em sistemas inativos, parece que 5-6 GB de RAM estão em uso consistente. Nem topnem ps auxpode identificar os processos a que este uso é atribuível.

5-6 GB parece muito grande para o sistema operacional para mim, mas talvez eu esteja errado. Isso poderia ser uma sobrecarga devido à virtualização na Amazon? Alguma outra idéia ou sugestão de como eu poderia rastrear isso?

Joe Corkery
fonte
1
Você está incluindo o cache de memória neste cálculo? Pode ser útil mostrar o conteúdo de proc meminfo.
Ray Vahey

Respostas:

7

A razão pela qual você vê uma quantidade substancial de memória sendo usada é que o Linux está usando grande parte dela para o cache de arquivos.

Isso provavelmente esclareceria as coisas para você:

http://www.linuxatemyram.com/

Rilindo
fonte
5

Quando você olha para cima , a memória livre que você vê é o valor antes do cache do kernel.

top - 12:59:25 up 1 day, 15:47,  5 users,  load average: 0.04, 0.10, 0.12
Tasks: 161 total,   1 running, 160 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.5%us,  1.8%sy,  0.0%ni, 94.2%id,  0.4%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   3985464k total,  3369908k used,   615556k free,   752964k buffers
Swap:  1951740k total,       12k used,  1951728k free,  1439160k cached

Meu laptop possui 3985464 quilo-bytes de memória total. Mas o kernel do linux armazenaria a maior parte disso em cache internamente, portanto, o top mostra apenas 619748kB de memória livre. Mas se você olhar usando o comando free , entenderá que, de fato, a maior parte da memória está disponível ... no cache.

$ free
             total       used       free     shared    buffers     cached
Mem:       3985464    3365716     619748          0     752796    1439152
-/+ buffers/cache:    1173768    2811696
Swap:      1951740         12    1951728

A memória livre real é a mostrada na linha de buffers / cache .

             total       used       free     shared    buffers     cached
-/+ buffers/cache:    1173768    2811696

Esta máquina possui 2,8 GB de memória livre.

Julien Vehent
fonte
Isso é bastante confuso, pois acho que não entendo o papel do cache. O que você quer dizer com "o kernel do linux armazenaria em cache a maior parte da [memória total de 3985464k]" ? Você afirma que, em topseguida, mostra apenas outro número, mas apenas mostra significa que o outro número será menor, mas o número que você citar é maior. Insira o smiley para arranhar a cabeça aqui.
Adam