Como posso monitorar o uso da CPU de instâncias do EC2 e reinicializá-lo se ele permanecer em 100% por muito tempo?

1

De vez em quando (talvez uma vez a cada três meses), de repente, nossa instância recebe 100% do uso da CPU e bloqueia e fica sem resposta.

Gostaria de encontrar uma maneira de detectar essa condição e iniciar uma reinicialização. qual é a melhor maneira de conseguir isso?

Temos uma assinatura do Cloudwatch. Estamos executando o Ubuntu Server 10.04.

    
por chrism2671 21.11.2010 / 16:51

1 resposta

3

Sério, corrija o problema. Pode haver várias razões pelas quais o uso da CPU está em 100%, e reiniciar o servidor ou matar processos quando isso aconteceu é apenas uma receita para o desastre. Se este for um utilitário de terceiros - liste-o aqui ou envie um bug para os mantenedores.

Se este é um utilitário caseiro, parece muito claro que você tem um problema com seu aplicativo. Minha primeira intuição seria verificar limites em todos os loops que você esteja usando poder de processamento pesado. Outra seria verificar se as condições de rescisão estão ou não sendo atendidas. Com toda a honestidade, porém, esta é uma questão de depuração e deve ser tratada internamente.

Quanto à sua pergunta atual, provavelmente não há nada embutido - mas com as permissões corretas, você certamente poderia configurar Nagios para disparar uma reinicialização remota (ou seja, via ssh) quando detectar certas condições. Você pode usar os indicadores de carga do sistema (uso! = load ) para monitorar, digamos, os 15 minutos intervalos para um determinado valor máximo. Você também pode fazer isso por meio de um script cron que, digamos, é executado a cada minuto

Espero que você corrija o erro em vez de contorná-lo - os futuros mantenedores ficarão agradecidos, especialmente se for você!

    
por 21.11.2010 / 17:09