
Eu tenho um servidor Linux/Debian rodando: postgresql, tomcat. Às vezes não consigo acessar o servidor por ssh.
Quando abro a conexão ssh com meu servidor, posso digitar meu ID de login (root) e senha, mas quando digito minha senha e pressiono Enter, não há resposta.
Pela função 'sysinfo', descobri que quando o servidor enfrenta esta situação, existem cerca de 1600 processos (este valor é de sysinfo.procs) e a média de carga é quase 300 (no caso normal, a média de carga está entre 0 e 1)
O que estou tentando é listar os 5 principais processos por número de threads que ele cria. No entanto, não consigo encontrar um método fácil. Há alguma maneira que encontrei.
- Registre o valor NLWP de
ps -efL
, para que eu possa saber qual processo cria muitos threads de forma anormal. - Quando a média de carga ficar cada vez maior, copie todo
/procs/*/status
o arquivo para o diretório de log e poderei saber qual processo tem o maior valor de 'Threads' posteriormente.
Se houver alguma outra sugestão, por favor me avise. Isso me deixa louco porque este servidor Linux não deve falhar no serviço
Responder1
Experimente isto:
$ ps axo nlwp,pid,cmd | sort -rn | head -10
ps ax - see every process
o - format
nlwp: number of lightweight processes (threads) in the process