Сортировать 10 самых популярных процессов по количеству потоков, созданных каждым в Linux

Сортировать 10 самых популярных процессов по количеству потоков, созданных каждым в Linux

У меня есть сервер Linux/Debian, на котором запущены: postgresql, tomcat. Иногда я не могу получить доступ к серверу по ssh.

Когда я открываю SSH-соединение со своим сервером, я могу ввести свой идентификатор входа (root) и пароль, но когда я ввожу свой пароль и нажимаю Enter, никакой реакции нет.

С помощью функции 'sysinfo' я обнаружил, что когда сервер сталкивается с такой ситуацией, на нем выполняется около 1600 процессов (это значение взято из sysinfo.procs), а средняя нагрузка составляет почти 300 (в обычном случае средняя нагрузка находится в диапазоне от 0 до 1).

Я пытаюсь составить список ТОП-5 процессов по количеству создаваемых ими потоков. Однако я не могу найти простой метод. Есть несколько способов, которые я нашел.

  1. Запишите значение NLWP ps -efL, чтобы узнать, какой процесс создает слишком много потоков, что является ненормальным.
  2. Когда средняя нагрузка становится все больше и больше, копирую все /procs/*/statusфайлы в каталог журнала, и позже могу узнать, какой процесс имеет наибольшее значение «Потоков».

Если есть какие-то другие предложения, пожалуйста, дайте мне знать. Это сводит меня с ума, потому что этот сервер Linux не должен давать сбой в работе

решение1

Попробуй это:

$ 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

Связанный контент