找出哪个进程分叉了太多线程

Jim*_*Jim 5 process monitoring troubleshooting ulimit

我在 Linux 安装中有一个进程,它在某些时候有某种尖峰,并通过了系统允许的最大线程/进程数。我通过ps -elfT | wc -l反复检查发现了这一点。

但我不知道究竟是什么导致了这个峰值。
的输出ps -elfT有很多信息,但我无法轻易理解是否有一些子进程在分叉时做了某种“模糊”并弄得一团糟。

我怎么能弄明白呢?

示例:ps -elfT | cut -d' ' -f3 | sort |uniq给我当时正在运行的进程。我如何添加计数以查看每个计数对总数的贡献?

Sté*_*las 5

ps -eo nlwp,pid,args --sort nlwp
Run Code Online (Sandbox Code Playgroud)

将显示按线程数排序的进程列表。

对于类似的顶部视图,您可以随时执行以下操作:

watch -n 1 'ps -eo nlwp,pid,args --sort -nlwp | head'
Run Code Online (Sandbox Code Playgroud)

或者你可以使用... top

  • f选择要显示的字段。
  • 定位nTH(线程数)并按下d显示它并s使其成为排序顺序
  • 你可以调整其显示位置?,然后???
  • q 返回进程列表
  • H如果要查看所有线程,请按。
  • d 调整延迟。
  • ? 求助。