Dê-me meu poder KILL quando algo der errado

4

Já tivemos algumas vezes agora. De repente, nosso servidor de produção não responde porque um processo está em um loop infinito, ou o servidor MySQL para de atender novas solicitações porque uma consulta está bloqueando tudo ...

Nós SSH para o servidor e usamos ps aux ou top para encontrar o culpado, ou mytop ou SHOW FULL PROCESSLIST no MySQL para encontrar o ID do processo ofensivo e kill dele. Então, é claro que tentamos recriar a situação no servidor de testes e corrigir o erro.

Mas às vezes o servidor está tão desativado que ps aux / top / mytop / SHOW FULL PROCESSLIST não é processado - até mesmo os administradores estão bloqueados.

Qual é a melhor maneira de garantir que um administrador sempre acesse o servidor e mate processos ou consultas ofensivas (tanto no Linux quanto no MySQL)?

  • Podemos alocar prioridades para diferentes usuários?
  • Reserve uma parte dos recursos para o root?

Eu verifiquei bom (1) , mas constantemente ter uma conexão aberta com um bom -20 parece um pouco excessivo e difícil de trabalhar (muito menos perigoso como root).

    
por Konerak 29.06.2010 / 15:22

5 respostas

2

O módulo pam_limits.so é uma ótima ferramenta para limitar a memória, abrir arquivos ... e definir boa prioridade para usuários e grupos.

rpm -ql pam | grep limits
man limits.conf
less /etc/security/limits.conf
    
por 09.07.2010 / 00:43
7

link

    
por 29.06.2010 / 16:10
3

Usamos servidores Dell que possuem uma placa de rede de acesso remoto (DRAC) instalada que nos permite acessar o servidor fora da banda por meio do ssh ou de um navegador da web. Podemos chegar a uma tela de console ou ligar e desligar o servidor. A maioria dos principais fornecedores de servidores suporta algum dispositivo semelhante.

Isso não ajuda se você quiser entrar em um servidor que tenha 0 recursos disponíveis para permitir um login. Curta de reservar recursos para um login, essa é a melhor coisa a seguir para acessar fisicamente o servidor.

Parece que você tem problemas com aplicativos problemáticos. Por que você tem aplicativos que estão entrando em loops infinitos e consultas do MySQL que estão esgotando seus recursos de servidor?

    
por 07.07.2010 / 21:46
2

Acho que minha resposta não foi boa o suficiente e alguém sentiu a necessidade de excluí-la.

monit ou deus, antecipa as coisas assumindo limites. Se você estiver executando ferro virtual em vez de bare metal, atribua todos os núcleos, exceto um, ao seu processo e salve um núcleo para acesso ao console. O KVM sobre IP pode, algumas vezes, permitir que você insira uma combinação de teclas no console. Se a atividade da rede estiver fazendo isso, desligue a eth0 até que as coisas se acalmem, conecte-se na eth1.

    
por 29.06.2010 / 19:04
1

Talvez SLURM possa ser a resposta. É um Gerenciador de Recursos de QoS para sistemas de cluster baseados em Linux.

    
por 08.07.2010 / 00:42