Este problema é o servidor parece ter apenas 490MB de RAM na máquina e você tem 421MB usado. Deixando apenas 68MB livres; isso não é muita memória para qualquer sistema trabalhar.
Olhando para a saída de top
mostra que o MySQL (aka: mysqld
) é o culpado.
A melhor coisa que você pode fazer se esta é uma situação temporária é simplesmente parar o MySQL assim:
sudo service mysqld stop
Então, com o MySQL parado, você pode executar yum install
como esperado.
Mas outra solução seria usar um script como o "MySQL Tuning Primer" para ajudar a avaliar o uso e a configuração do MySQL no saque e ajuste de acordo. A razão disso é que o MySQL simples e pronto para uso é um "memory hog". Mas o “MySQL Tuning Primer” ajudará a avaliar sua instalação e permitirá que você saiba o que você pode ajustar. Incluindo a redução dos requisitos de memória para que a configuração possa ser feliz com seus recursos limitados. O único problema é que o MySQL precisa estar rodando ativamente por pelo menos 48 horas seguidas para que os resultados do “MySQL Tuning Primer” valham alguma coisa. Além disso, o desempenho ajustando o MySQL com este script é uma ótima maneira de ajustar seu L.A.M.P. configuração.
Além disso, como você está executando o Apache, é provável que você diminua os requisitos de RAM do Apache (também conhecido como httpd
) para liberar mais RAM dessa maneira. Este é um conjunto bastante genérico de ajustes para um ambiente de desenvolvimento básico do Apache, mas deve ajudá-lo. Primeiro abra sua configuração do Apache através do seu editor de linha de comando favorito como este; Eu prefiro nano
mas qualquer editor de texto é bom:
sudo nano /etc/httpd/conf/httpd.conf
Agora encontre a linha que diz Timeout
e mude para "120"; dois minutos é uma janela de tempo limite razoável:
Timeout 120
Similarmente, encontre MaxKeepAliveRequests
e mude para "24"; Conexões "keep alive" são boas, mas não deixe que elas sobrecarreguem sua configuração:
MaxKeepAliveRequests 24
Encontre KeepAliveTimeout
e defina como "2"; Isso deve se correlacionar a quão rápida uma página no seu site é carregada e 2 segundos é uma boa média:
KeepAliveTimeout 2
Agora, procure a diretiva de configuração XML definida como <IfModule mpm_prefork_module>
:
<IfModule mpm_prefork_module>
StartServers 8
MinSpareServers 16
MaxSpareServers 32
ServerLimit 40
MaxClients 40
MaxRequestsPerChild 2000
</IfModule>
A chave para isso é ServerLimit
e MaxClients
. Por padrão, as configurações do Apache são bastante altas; 255 para MaxClients
eu acredito. Mas a realidade é que mesmo um site de alto tráfego terá apenas 70-80 conexões por segundo ... E então morrer ... Significado As conexões do Apache são sem estado, então o benchmark é conexões por segundo. Portanto, para um servidor de desenvolvimento ou de pequena escala, "40" é um bom número.
Agora, com esses ajustes de chave feitos, reinicie o Apache assim:
sudo service httpd restart
Ao ajustar o MySQL e o Apache para ter configurações mais razoáveis do que os valores padrão / enlatados, você pode liberar recursos em seu servidor e fazer com que tudo funcione melhor.