Limpar / liberar memória cache [duplicada]

5

Eu tenho um pequeno VPS com 6 GB de RAM hospedando alguns sites.

Recentemente, notei que o tamanho da minha memória em cache é bastante alto - veja abaixo:

    Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.1%id,  0.0%wa,  0.2%hi,  0.4%si,  0.0%st
    Mem:   6113256k total,  5949620k used,   163636k free,   398584k buffers
    Swap:  1048564k total,      104k used,  1048460k free,  3586468k cached

Depois de investigar se há algum método para liberar ou apagar, me deparei com um comando que é:

    sync; echo 3 > /proc/sys/vm/drop_caches

Eu li que poderia ser útil adicionar isso a uma tarefa / tarefa cronológica. Este método é recomendado ou isso pode levar a problemas em potencial?

A única preocupação que tenho é que eu uso uma instalação do Magento no Memcached - isso poderia ter algum efeito negativo sobre ela?

Eu certamente não sou um profissional, portanto, eu apreciaria muito alguns conselhos de especialistas.

PS: Meu VPS é executado no CentOS 5 x64 e eu tenho o WHM + NGINX instalado.

    
por TheDave 07.10.2012 / 10:30

3 respostas

7

Eliminar seus caches provavelmente afetará o desempenho do servidor, pois ele deve reler os dados acessados com frequência de volta aos caches após cada queda de cache.

Não há nenhum motivo real para descartar seus caches. Para o kernel do Linux, a memória que está sendo usada para cache é essencialmente livre e será passada para os aplicativos sempre que eles precisarem. Dê uma olhada no site para mais informações.

Com relação aos dados armazenados no memcached - isso é seguro contra os efeitos de descartar os caches page / dentries / inodes.

    
por 07.10.2012 / 10:43
4

Como disse, há pouco sentido em deixar os caches a menos que você tenha uma razão muito convincente para fazer isso. Se você não estiver vendo nenhum problema de desempenho, deixe-o como está.

Se você é do tipo curioso, então você pode ajustar o parâmetro vm.vfs_cache_pressure. O valor padrão é 100, o que significa que o kernel tentará recuperar o cache a uma taxa justa em comparação com a recuperação da troca. Aumentar o valor levaria a memória cache a ser recuperada mais rapidamente e reduzi-la levaria a recuperar a troca mais rapidamente, mas lembre-se disso é como a agressividade do kernel para limpar o cache ou a troca é. Os resultados reais variam de ambiente para ambiente.

Em vez de ecoar 3, você também pode fazer o eco 1 ou 2. Se bem me lembro, o eco 1 limpará o cache de páginas e 2 apagará o cache de dentry e inode. 3 limpará os caches pagecache, dentry e inode.

    
por 07.10.2012 / 12:59
2

Não há nenhum dano real em ter esse nível de RAM armazenada em cache. É o que o Linux faz.

Você está vendo algum ganho de desempenho após eliminar os caches? Se não, então não vale a pena agendá-lo.

Como um lado, você pode controlar o que está no cache com um pouco mais de granularidade usando o vmtouch utility .

    
por 07.10.2012 / 10:47