TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.7K subscribers
Post #914 1.13K
Как смотреть потоки процесса через ps, /proc и strace

Обычно при работе с ps мы смотрим процесс по PID или грепаем по имени:


ps -p 524 -o %mem,%cpu,cmd
ps ax | grep prometheus


Но часто удобнее сразу указать имя процесса через -C. Например, посмотрим потоки prometheus:


ps -T -C prometheus

PID SPID TTY TIME CMD
525 525 ? 00:55:34 prometheus
525 803 ? 00:03:10 prometheus
525 808 ? 00:09:22 prometheus
525 1054 ? 00:08:44 prometheus


PID - ID основного процесса
SPID - ID конкретного потока

▪️ Посчитать количество потоков


ps -T -C zabbix_server | wc -l


Важно: количество потоков и количество процессов - не одно и то же. Например:


ps -T -C zabbix_server | wc -l
ps ax | grep zabbix_server | wc -l


Результаты могут сильно отличаться.

▪️ Посмотреть нагрузку по потокам. Если приложение тормозит, полезно вывести CPU/MEM с разбивкой по потокам. Например, для процесса с PID 508:


ps -L -o spid,%mem,%cpu,cmd 508

SPID %MEM %CPU CMD
1070 0.6 0.0 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
1071 0.6 0.1 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
1077 0.6 0.3 /usr/bin/python3 /usr/bin/fail2ban-server -xf start


Так можно увидеть, какой именно поток ест CPU.

▪️ Найти подробности потока через /proc. Если знаем PID процесса и SPID потока:


cat /proc/508/task/1077/stat


В начале строки можно увидеть имя потока, например:


1077 (f2b/f.wp-login)


У Fail2ban это может подсказать, какой jail сейчас нагружает систему. Больше информации:


cat /proc/508/task/1077/status


▪️ Подключить strace к конкретному потоку. strace умеет подключаться не только к PID процесса, но и к SPID потока:


strace -p 1077


На нагруженном сервере вывод быстро завалит консоль, поэтому лучше писать в файл:


strace -p 1077 -o ~/strace.out


Можно ограничить типы системных вызовов. Открытие файлов и чтение:


strace -p 1077 -e trace=openat,read


Запись:


strace -p 1077 -e trace=write


Сеть:


strace -p 1077 -e trace=connect,recvfrom,sendto


▪️ Через htop. В htop тоже можно смотреть трейсы. Выберите нужный процесс или поток и нажмите: s. Если strace установлен, htop покажет системные вызовы в реальном времени.

#linux #htop

🧑‍💻 NetworkAdmin
  • 👍 4
More from @networkadminru
  1. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
  2. Sep 25, 2026🤩 Как расшифровать код ошибки Windows через certutil При установке обновлений Windows ран…
  3. Sep 23, 2026💻 Как жестко перезагрузить linux, когда обычный reboot уже не помогает Иногда сервер зави…
  4. Sep 22, 2026🌚 watch: простая динамическая диагностика в терминале Иногда не нужен отдельный мониторин…
  5. Sep 21, 2026👌 Firewall default deny: как внедрять без внезапного отрезания доступа Идея простая: разр…
  6. Sep 18, 2026🖥 Windows зависла на "Подготовке Windows": как проверить состояние удаленно Типичная ситу…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →