Por que o memcached não está usando a memória disponível?

1

Nosso memcached.conf possui a seguinte diretiva:

-m 7168

E o servidor tem 8GB de RAM. No entanto, apesar do uso pesado, o uso de memória nunca ultrapassa 2 GB:

# free
             total       used       free     shared    buffers     cached
Mem:       8178532    2067308    6111224          0     109092     434916
-/+ buffers/cache:    1523300    6655232
Swap:            0          0          0

O que estamos perdendo?

    
por Seth 10.11.2015 / 19:59

1 resposta

3

Normalmente, o memcached usa apenas a quantidade de memória necessária, mesmo que você forneça um limite máximo. Não é como os buffers do sistema Linux que, por design, podem se expandir para preencher toda a memória disponível, a fim de melhorar o desempenho do sistema.

Você pode fazer telnet no memcache e emitir os comandos

stats
stats slabs
stats malloc

que deve lhe dar uma idéia sobre quantos objetos de quais tamanhos estão em seu memcache e quanta memória eles ocupam.

Se o memcached não tiver memória suficiente para armazenar todos os seus objetos, ele removerá os objetos mais antigos, o que incrementará o contador de "remoções" retornado por slabs . Se "despejos" estiver em 0, então seu memcache tem memória suficiente.

Você pode encontrar muitos outros comandos e soluções úteis na "folha de dicas do memcached", no link

    
por 10.11.2015 / 22:35