Alto uso da CPU sem informações úteis do comando top

5

Nos últimos dois dias, comecei a ter problemas com um servidor que tem alguns usuários nele. O servidor é um VPS OpenVZ. Normalmente, quando tenho um alto uso de CPU, sempre uso o comando top para descobrir o motivo. Mas para este servidor, não recebo nenhuma informação útil do comando top . Abaixo está uma captura de tela de exemplo para o problema que estou experimentando

Comopodeservistonacapturadetela,acoluna%CPUéquasesemprezeroparatodooprocessoepraticamentenamaioriadasvezeseuvejotodososvaloressãozeros,masousodaCPUatingiuaté10núcleos!

Estoutotalmenteperdidoenãoseioquefazerparadescobriromotivo.Então,gostariadeperguntarsealguémtemalgumaideiasobreaspossíveiscausasqueestouenfrentando?Poderiaserdevidoaosproblemasdoservidor?

Obrigadoporqualquersugestão!

Editar:

Porfavor,notequeestacapturadetelaérealizadaapenasquandoocorreumacargaalta.Aconteceacadapoucashoraseduracercade20minutos.Ousonormalédeapenas0,0-0,2núcleos.Abaixoestáumexemplodeusonormal.

Outrasatualizações

Agoraaconteceunovamente,aquiestáacapturadeteladoscomandossugeridos

Lamento que eu seja um noob sobre isso, mas se eu entendi corretamente, não há nada de errado com o uso do disco, o uso do io é muito baixo.

Última atualização

Eu tentei usar os métodos sugeridos usando vmstat , ps fornecido nas respostas e nos comentários, mas não consegui encontrar informações úteis. Quando o pico acontece, eu até paro o apache, mysql, mas isso não ajudou. Eu finalmente entrei em contato com o provedor de VPS e solicitei a mudança para outro nó. Ele me disse que estava ciente dos problemas com o nó, que está sendo strongmente abusado por clientes maliciosos recentemente, e ele está trabalhando para corrigir os problemas. Então eu acho que não tenho que fazer nada do meu fim agora. No entanto, gostaria de agradecer a todos os membros que deram sugestões, tornando este Q & Um útil para referência futura!

    
por aye 04.03.2017 / 16:37

3 respostas

9

Cerca de 30% do tempo de CPU parece ser gasto em WAIT e sua carga (1 minuto, pelo menos) é muito alta.

Então, começaria verificando seus padrões de armazenamento e uso de armazenamento. Um bom ponto de partida pode ser dar uma olhada no iostat e / ou monitorar qualquer operação lenta (escrita e leitura). Você também pode verificar o tempo gasto em cada processo na parte superior, para ver se alguma coisa se destaca. Como você tem o mysql em execução, eu também verificaria como está sendo feito.

Você também parece estar trocando, mesmo que você tenha uma quantidade razoável de memória sobressalente, então eu veria o que o ajuste de vm.swappiness (usando sysctl) poderia fazer por você. A RAM é mais rápida que a swap, então se você puder usá-la, eu o faria.

Se tudo mais falhar, veja o que o sysrq pode fazer por você.

Se uma visão geral mais visual pudesse ajudá-lo, talvez eu olhasse para o netdata de firehol ( link ), se você não tem uma solução pré-existente.

    
por 04.03.2017 / 16:46
6

Você não descreveu qual é o problema. Se houve um problema de desempenho, como aplicativos que não são responsivos o suficiente, descreva-o.

A média de carga não é o número de núcleos em uso. Está relacionado ao número de processos na CPU ou à espera. Quando a média de carga é muito maior que o número de núcleos, isso pode indicar que o sistema é menos responsivo de toda a espera.

Você está usando um sistema baseado em contêiner. Existe apenas um kernel compartilhado para o host, você está executando alguns processos nele. Você verá o pico de carga quando os outros contêineres do host funcionarem, mas isso não será refletido em sua lista de processos.

    
por 04.03.2017 / 18:39
4

Você deve instalar atop . É mais informativo.

Sua CPU é usada por operações de entrada / saída. WA - está esperando e é mais 30%. Eu vejo que o processo mais útil é mysqld . Comem o tempo de CPU mais que outros.

Eu recomendo que você aumente os buffers de memória e mude outros parâmetros do MySQL para reduzir as operações de disco. Você pode ler sobre isso em Dez configurações de ajuste de desempenho do MySQL após a instalação

Se você usa a máquina virtual, talvez outra VM ou sistema host use o disco com muita força. Também é possível que seu disco tenha setores defeituosos. Verifique-o lendo atributos SMART por meio do comando smartctl -a no servidor host.

    
por 04.03.2017 / 17:52

Tags