O que pode fazer com que TODOS os serviços em um servidor caiam, mas ainda respondendo ao ping? e como descobrir

8

Já aconteceu comigo duas vezes em poucos dias que meu servidor desce completamente, significando http, ssh, ftp, dns, smtp, basicamente TODOS os serviços param de responder, como se o servidor tivesse sido desligado, exceto que ainda responde ao ping, que é o que mais me agrada.

Eu tenho alguns scripts PHP que causam uma carga enorme (cpu e memória) no servidor em rajadas curtas, usado por um pequeno grupo de usuários, mas geralmente o servidor "sobrevive" perfeitamente a essas rajadas, e quando desce nunca coincide com tais picos de uso (eu não estou dizendo que não pode ser relacionado, mas isso não acontece logo depois disso).

Eu não estou pedindo para você magicamente ser capaz de me dizer a causa final dessas falhas, a minha pergunta é: existe um único processo cuja morte pode fazer com que todos esses serviços caiam simultaneamente? O engraçado é que todos os serviços de rede caem, exceto o ping. Se o servidor tivesse 100% da CPU consumida por algum processo, também não responderia ao ping. Se o apache falhou por causa de (por exemplo) um script php quebrado, isso afetaria somente o http, não o ssh e o dns .... etc.

Meu sistema operacional é o Cent OS 5.6

Mais importante, após a reinicialização do servidor, quais logs de sistema devo analisar? / var / log / messages não revela nada de suspeito.

    
por matteo 21.10.2012 / 14:10

2 respostas

7

( tl; dr ainda respondendo ao ping é um comportamento esperado, verifique seu uso de memória)

As solicitações de eco ICMP (ou seja, ping) são tratadas pela pilha de rede do kernel, sem nenhuma outra dependência.

O kernel é conhecido como "residente na memória", o que significa que ele sempre será mantido na RAM e não pode ser trocado para o disco como um aplicativo normal pode.

Isso significa que, em situações em que você está sem memória física, os aplicativos são trocados para o disco, mas o kernel permanece onde está. Quando a memória física e a de troca estão cheias (e o sistema não consegue gerenciar seus programas por muito tempo), a máquina irá cair. No entanto, porque a) o kernel ainda está na memória e b) ele pode responder às solicitações de ping sem a ajuda de qualquer outra coisa, o sistema continuará respondendo ao ping apesar de tudo estar morto.

Em relação ao seu problema, suspeito strongmente de problemas de memória. Instale o "sysstat" e use o comando "sar" para ver um log de memória / cpu / load / io load etc. Eu esperaria que, no momento da falha, você veria ambos os 100% físicos e swap usados.

Eu também consideraria olhar para dmesg ou / var / log / messages para qualquer sinal de OOM-killer (killer sem memória) sendo invocado . Este é o sistema de emergência do kernel que começará a matar processos no caso de a memória estar esgotada. Sua eficácia depende em grande parte dos processos que estão sendo mortos. Um único processo consumindo a memória será eficientemente eliminado e a memória liberada, no entanto, um site baseado em apache gerará processos de substituição assim que um processo filho for morto.

    
por 21.10.2012 / 15:06
4

Geralmente, é um problema de E / S ou subsistema de disco. Muitas vezes, isso será acoplado a uma média de carga do sistema extremamente alta. Por exemplo, o sistema detalhado no gráfico abaixo ficou sem resposta (ainda foi pingable) quando um script correu mal, bloqueou um monte de arquivos e a carga subiu para 36 ... em um sistema de 4 CPUs.

Os serviços que estão sendo executados na RAM e não requerem acesso ao disco continuam a ser executados ... Assim, a pilha de rede (ping) está ativa, mas os outros serviços param quando o acesso ao disco é necessário ... SSH quando uma chave é referenciado ou a pesquisa de senha é necessária. SMTP tende a desligar quando a média de carga atinge 30 ou mais ...

Quando o sistema estiver nesse estado, tente um nmap remoto contra o IP do servidor para ver o que está acontecendo.

Seu registro provavelmente não funcionará se for um problema de disco ou armazenamento ...

Você pode descrever a configuração de hardware? Isto é uma máquina virtual? Qual é o layout de armazenamento?

Mais do que o registro, você quer ver se você pode representar graficamente o desempenho do sistema e entender quando isso está acontecendo. Veja se isso se correlaciona com uma atividade específica.

    
por 21.10.2012 / 14:19