Isso é um bom comportamento? [duplicado]

2

Meu centos 5.7 está executando o Magento. 4 GB de RAM e 4 núcleos. Nginx + spwan-fcgi + memcached (melhor desempenho se você me perguntar).

Agora estou um pouco preocupado com o uso da memória.

[root@adikastyle shipment]# free -m
             total       used       free     shared    buffers     cached
Mem:          3948       3712        236          0        224       **2377**
-/+ buffers/cache:       1109       2839
Swap:        10975          0      10975

Eu vi em alguns fóruns este comando:

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

o site é rápido e lida com muitas conexões.

mas o cache é realmente estranho ..

  1. Este comando é seguro para produção?

  2. Os 2377MB de cache são bons?

  3. Eu tenho que mudar alguma coisa?

Obrigado.

    
por Livne Berebi 14.03.2012 / 14:17

4 respostas

4

A linha em cache que você está observando é algo muito bom de se ter.

Todos os dados mencionados lá teriam que ser lidos do disco sem o cache. Com o cache, os resultados serão retornados da RAM.

O Linux é muito inteligente com caching e buffering hoje em dia; não tente enganá-lo com algumas dicas aleatórias de copiar e colar que você vê na Internet.

Não altere nada, fique feliz que você tenha quase 2,5 GB de conteúdo em cache. Isso ajuda enormemente seu desempenho; Deixar cair os caches com sua linha de eco realmente prejudica bastante o desempenho! O material armazenado em cache será liberado imediatamente se qualquer aplicativo realmente precisar dele, isso não causará um impacto no desempenho.

    
por 14.03.2012 / 14:24
2

Se estiver funcionando bem em sua configuração, o desempenho é bom, e suas estatísticas são satisfatórias para seus aplicativos, não brinque com elas.

O Linux é muito bom em manter o cache por conta própria.

Espere até que você tenha problemas reais para corrigir, em vez de criar novos problemas.

    
por 14.03.2012 / 14:30
2

É um equívoco comum que você deve ter RAM livre . Você quer usar o máximo de RAM possível - é o subsistema de memória mais rápida do seu servidor.

Assim, o sistema operacional Linux é bastante inteligente e começa a armazenar arquivos / dados / informações acessados com freqüência na RAM, nos buffers / cache.

Quando um aplicativo precisa de RAM (por exemplo, mais threads do PHP), a memória alocada para o disco / buffers é reduzida em favor dos aplicativos do espaço do usuário.

Então, no momento, seu uso de memória parece muito saudável. Mas também vale a pena ter em mente quanta memória você está realmente comprometendo (se o seu tráfego aumentar e os encadeamentos PHP aumentarem, as conexões MySQL aumentarão, etc.). Você pode verificar isso executando

cat /proc/meminfo | grep committed

Você deve esperar ver algo assim

commitLimit 3145728 
committed_AS 6291456

Geralmente, é 'bastante seguro' para um servidor Magento ter uma memória comprometida em torno da memória dupla disponível (devido a ter que aumentar os limites de memória do PHP para processos de administração de longa execução).

    
por 15.03.2012 / 22:54
1

As referências canônicas por aqui para uso de memória que é dominado pelo cache:

Os dados em cache na memória são gratuitos (ambos podem ser usados como não utilizados e não têm nenhum custo para desempenho - apenas benefícios!), e há poucas coisas na vida que são gratuitas . Quando seus programas precisarem, eles conseguirão. Quando não o fizerem, os dados recentemente lidos dos discos serão mantidos na memória e usados para responder às leituras que, de outra forma, precisariam vir da unidade.

    
por 14.03.2012 / 14:45