memcached travou sem notificação

5

Dependemos muito do memcache e estamos atendendo a alguns bilhões de solicitações por mês. Nós temos 5 servidores memcache. Ontem à noite, vimos um aumento de 25% no nosso tráfego. Os gráficos mostram que solicitações e dados transferidos por cada memcache aumentaram e os fizeram travar. Ele iniciou uma reação em cadeia e cada servidor memcache travou um após o outro (o carregamento por servidor aumentou).

Não foram encontrados registros no syslog, mensagens, arquivo de log do memcache (as configurações Verbose estavam desativadas).

Eu tenho duas perguntas:

  1. Como posso descobrir por que exatamente isso aconteceu? Se a carga é um problema para memcache, existe alguma documentação sobre o quanto um normal memcache (rodando em configuração decente) pode manipular. Como posso aumentar este valor.

  2. Como posso garantir que eles nunca mais afundem novamente? Eventualmente impactou nossos servidores e replicação do mysql e impactou muitos outros serviços relacionados. Preciso de mais servidores memcache?

Eu iniciei meu memcache usando este script init.d: link onde ENABLE_MEMCACHE é YES em / etc / default / memcached

/ usr / share / memcached / scripts / start-memcached: link

Obrigado

    
por Sparsh Gupta 27.10.2011 / 08:04

2 respostas

5

Suponho que você execute a versão 1.4.5 ou anterior.

Como você mencionou um aumento no tráfego, uma saída repentina:

  • Você pode ter atingido o limite máximo de conexões (consulte link para algumas discussões sobre isso).
  • Se você martelar o limite de conexão por um longo tempo, houve um bug que faria com que o memcached saísse.
  • Isso foi parcialmente reparado em 1.4.6, mais reparado em 1.4.7 e refinado em 1.4.9.

Se você já experimentou uma falha, a primeira coisa a fazer é certificar-se de que você está na última versão estável. Se você ainda tiver problemas, a melhor coisa a fazer é entrar em contato com a lista de discussão real ou enviar um relatório de bug com informações, em vez de ter sorte com um mantenedor vendo isso através de uma pesquisa no Twitter.

Realizar atualizações periódicas para corresponder ao último estável pode ajudar você a evitar que todo o cluster colapse no futuro.

    
por 27.10.2011 / 08:31
0

Você também deve encontrar algum tipo de solução estrutural para lidar com problemas semelhantes. Por exemplo, se você perceber que o tempo de resposta das solicitações está aumentando, reduza o número de solicitações. Você pode fazer isso de várias maneiras, incluindo a desativação de serviços não essenciais.

Essa falha em particular provavelmente não teria sido evitável. Não há muito que você possa fazer sobre uma falha que causa aumento de carga.

    
por 27.10.2011 / 08:49

Tags