Uso de memória causado pelo MySQL ou Apache?

0

meu uso de memória vps http://www.fileden.com/files /2012/9/14/3347302/my%20usage.png

Aqui está uma captura de tela do meu uso hoje em um site drupal inacabado cms ocioso com um máximo de 14 módulos adicionados além de núcleo e nenhuma atividade ou usuários.

Como você pode ver, eu estou no meu limite, o que é uma loucura, então eu preciso limitar o uso de memória do apache e do mysql e php porque meu VPS é o menor que deve atender às minhas necessidades atuais.

Meu arquivo de sistema my.cnf não tem uma lista de parâmetros como eu vi postado em outro lugar, mas este é o arquivo que aparentemente irá diminuir o uso de memória, entre outras coisas que eu li como vazamentos de memória e apache trabalhadores MPM apache prefork que parece ser o que eu tenho.

Então, como posso reduzir significativamente o uso de memória sem remover o apache ou o php5?

Estou usando a versão 5.1.66 do mysql e se parece com o innodb e mostra a variável yabbit.net/mysql.txt

    
por freja 06.12.2012 / 12:19

1 resposta

3

Estou suspeitando que sua configuração do Apache é o culpado aqui, em vez de sua configuração do MySQL. As configurações atuais do MySQL não devem ultrapassar o total de 50 MB (normalmente, acho que até mais baixo).

No entanto, a partir da configuração do Apache que você postou nos comentários, juntamente com o fato de que o seu VPS fornece apenas 256 MB de memória, vejo que uma configuração de

MaxClients       256

para o Prefork MPM é caminho demais para tal máquina. Em meus servidores Web Squeeze da Debian, vejo cerca de 20MB de uso por fork, então cerca de 15 conexões já consomem toda a memória em sua máquina. Não é difícil obter tantas conexões simultâneas e, como resultado, os processos serão mortos, provavelmente, ou muito swap será usado. Resultado: servidor disfuncional ou resposta de serviço lenta, respectivamente.

Sugiro que você:

  • Reduza significativamente a configuração do seu prefork para, por exemplo, isto:

    <IfModule mpm_prefork_module>
        StartServers         10
        MinSpareServers      5
        MaxSpareServers      15
        MaxClients           15
        MaxRequestsPerChild  2000
    </IfModule>
    

    E convive com o fato de você não poder atender mais de 8 visitantes simultâneos (geralmente duas conexões de clientes por navegador). Esta é uma limitação da quantidade de memória em combinação com a configuração LAMP escolhida.

  • Mude para o PHP-FPM, configure um pool pequeno e vá para o MPM worker ou até mesmo outro servidor da Web, como o nginx. O worker MPM usa threads que compartilham memória, em vez de forks, que não. Isso deve permitir que você gerencie mais visitantes simultâneos.

por 06.12.2012 / 15:28

Tags