Em geral, eu vi isso acontecer por causa de uma leitura interrompida. Isso é confirmado pela sua saída strace
. A tentativa de ler o arquivo / proc / xxxx / cmdline trava enquanto você está executando o comando ps aux
.
Os picos momentâneos em E / S estão privando os recursos do sistema. Uma carga de 90-160 é uma péssima notícia se for relacionada ao subsistema de armazenamento.
Para o storage array, você pode nos informar se existe um controlador RAID de hardware? O aplicativo principal no servidor é influenciado por gravação? Os discos que você menciona (12 x 4 TB) são discos SAS ou SATA nearline de baixa velocidade. Se não houver nenhuma forma de gravação em cache na frente da matriz da unidade, as gravações são capazes de elevar o carregamento do sistema. Se forem unidades SATA puras em um backplane Supermicro, não desconsidere o possibilidade de outros problemas de disco ( timeouts, falha na unidade, backplane, etc. ) isso acontece em todos os nós do Hadoop?
Um teste fácil é tentar executar iotop
enquanto isso está acontecendo. Além disso, como este é o EL6.5, você tem alguma das tuned-adm
configurações ativado? As barreiras de escrita estão habilitadas?
Se você não alterou o elevador de E / S do servidor, ionice
pode ter um impacto. Se você mudou para algo diferente de CFQ , ( este servidor provavelmente deve estar em deadline ), ionice
não fará qualquer diferença.
Editar:
Uma outra coisa estranha que eu vi em ambientes de produção. Esses são processos Java e suponho que sejam altamente multithread. Como você está fazendo em PIDs? Qual é o valor de sysctl
para kernel.pid_max ? Eu tive situações em que eu já exaurei PIDs e tive uma alta carga resultante.
Além disso, você menciona a versão do kernel 2.6.32-358.23.2.el6.x86_64 . Tem mais de um ano e faz parte da versão do CentOS 6.4, mas o resto do seu servidor é 6.5. Você bloqueou as atualizações do kernel no yum.conf? Você provavelmente deveria estar no kernel 2.6.32-431.x.x ou mais recente para esse sistema. Poderia haver um problema nas páginas iniciais com o kernel antigo . Se você não pode mudar o kernel, tente desabilitá-los com:
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
.