
Como obter detalhes de um processo que está consumindo RAM. Deprincipalcomando, descobri que o Mysql está consumindo muita memória RAM, como posso saber por que o Mysql está consumindo muita memória RAM, longe do comportamento normal?
Existe algum comando para obter mais detalhes do processo além de "obs:"
Responder1
Você pode querer executar SHOW PROCESSLIST
no MySQL para obter informações sobre quais consultas estão em execução no momento.
Responder2
mytop - Um utilitário de linha de comando para monitorar o desempenho do servidor MySQL em tempo real. Para que o mytop funcione corretamente, você deve ter o seguinte:
- Perl 5.005 ou mais recente
- Obteropt::Longo
- DBI e DBD::mysql
- Termo::ReadKey do CPAN
E o acima, especifiquei para distribuições Linux.
Responder3
Parece que o MySQL está tendo que criar grandes tabelas temporárias na memória enquanto processa uma consulta não otimizada.
Se não estiver habilitado, habilite o log de consulta lenta adicionando o seguinte ao seu arquivo my.cnf:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
Então dê uma olhada no arquivo /var/log/mysql/mysql-slow.log. Você deve executar EXPLAIN em cada consulta listada no arquivo para ter uma ideia do que está acontecendo quando a consulta é executada. Com esse conhecimento você pode otimizar a consulta para obter melhor desempenho.