Meu servidor linux “Número de processos criados” e “Comutadores de contexto” estão crescendo incrivelmente rápido

3

Eu tenho um comportamento estranho no meu servidor: - /. É um OpenVZ VPS (eu acho que é OpenVZ, porque /proc/user_beancounters existe e df -h retorna / dev / simfs drive. Também ifconfig retorna venet0 ). Quando eu faço cat /proc/stat , eu posso ver como cada segundo sobre 50-100 processos é criado e acontece sobre switches de contexto de 800k-1200k! Toda essa informação é com o servidor completamente ocioso, sem tráfego nem programas em execução.

Top mostra 0 load average e 100% de CPU ociosa.

Fechei todos os serviços não necessários (httpd, mysqld, sendmail, nagios, named ...) e o problema ainda acontece. Eu faço ps -ALf a cada segundo também e não vejo nenhuma alteração, apenas um novo processo ps é criado a cada vez e o PID é exatamente o mesmo de antes + 1, então novos processos não são criados, então eu pensei esse processo crescendo em cat /proc/stat deve ser encadeamentos (Sim, parece que processes in /proc/stat conta a criação de encadeamentos também, como está indicado aqui: ligação ).

Eu mudei para /proc dir e terminei cat [PID]\status com todos os PIDs listados com ls (incluindo os do kernel) e em qualquer processo voluntary_ctxt_switches nor nonvoluntary_ctxt_switches estão crescendo na mesma velocidade que cat /proc/stat faz (apenas algumas dezenas / segundo), Threads mantém o mesmo também.

Eu também fiz strace -p PID em todo o processo para ver se algum processo está agrupando segmentos ou algo assim, mas o único processo que tem um pouco de movimento é ssh e esse movimento é read / write de operações porque os dados estão sendo enviados para o meu terminal.

Depois disso, eu fiz vmstat -s e vi que forks está crescendo na mesma velocidade processes em /proc/stat . Como o link diz, cada fork() cria um novo PID, mas meu servidor PID não está crescendo!

A última coisa que posso pensar é que todos os dados de processo que proc/stat e vmstat -s mostram são compartilhados com todos os outros VPS armazenados na mesma máquina, mas não sei se isso está correto ... Se alguém puder esclarecer isso, eu ficaria muito grato.

    
por Jorge Fuentes González 01.12.2012 / 20:00

2 respostas

2

No seu caso eu diria que seu kernel não está virtualizando alguns ou todos os valores em / proc / stat, então o que você está vendo deve ser causado pela atividade em outros containers ou no próprio nó de hardware.

Você não mencionou sua versão específica do kernel, então não podemos verificar com certeza, mas um problema similar foi discutido em link .

PS: confira / proc / vz / vestat.

    
por 05.12.2012 / 22:29
0

Eu já vi pelo menos uma pergunta semelhante aqui sobre alguém com dois servidores ubuntu idênticos atrás de um balanceador de carga ... e vou lhe contar o que eu disse a ele:

syspro ("criador de perfil do sistema")

ou tente preencher alguns limites em /etc/security/limits.conf Aplique os limites a ambas as máquinas e compare quais executáveis aparecem. Pelo menos, ele sinalizará um processo ou thread e limitará a lista de suspeitos.

man limits.conf: hard & soft para descritores de arquivos, mem bloqueado, tamanho da pilha, tempo de CPU, níveis bons, etc

    
por 07.12.2012 / 21:53