MySQL Server atingindo 100% inesperadamente (Amazon AWS RDS)

1

Por favor me ajude! Nós temos lutado com esse por meses. Esta semana, aumentamos nossa instância do RDS para a instância de maior desempenho e, embora as ocorrências tenham sido reduzidas, ainda estamos tendo nosso banco de dados atingido 100%. Isso vem do nada. Às vezes às 2 da manhã, às vezes ao meio dia.

Eu descartei um DOS - nossos registros de acesso a páginas têm tráfego normal

Eu descartei memcached morrer de repente (acertos e erros continuam normalmente).

O SHOW PROCESSLIST enquanto temos problemas reporta cerca de 500 consultas em fila. Se eu matá-los ou reiniciar o servidor, eles continuam voltando e, eventualmente, fora do conhecimento, nosso servidor volta ao normal. Às vezes até 3 horas.

Nossas consultas de desempenho ruim levam 0,02 segundos para serem executadas quando o servidor eventualmente retorna ao normal, mas enquanto estamos nesta fase 100% de fisco da CPU, essas consultas nunca terminam de ser executadas.

Por favor ajude !!!!! Alguém sabe alguma coisa sobre otimização de consulta MYSQL? Poderia ser o servidor decidir usar diferentes índices de repente, o que o coloca em uma espiral?

    
por Luc 17.09.2012 / 09:15

1 resposta

1

link

Como se vê, nossa questão foi uma falha de tempestade de cache, como a falta de debandada.

Nós resolvemos isso implementando uma expiração de 50% do cache. Basicamente, para cada item no memcache, criamos um segundo item de cache com uma chave semelhante, mais a string 'regenerate' anexada. Esse item expira em exatamente 50% do tempo de expiração do cache típico, indicando à próxima solicitação que estamos chegando mais perto do cache expirado e a próxima solicitação precisará tentar regenerar o cache.

Isso evita a tempestade de usuários tentando regenerar o cache ao mesmo tempo e garante que o nosso cache tenha a melhor chance de permanecer sempre atualizado!

Um complicado para rastrear!

    
por 18.09.2012 / 08:23