114 linux multithreading monitor
我想监视Linux上特定进程使用的线程数.有没有一种简单的方法来获取这些信息而不影响流程的性能?
sla*_*nic 139
尝试
ps huH p <PID_OF_U_PROCESS> | wc -l
Run Code Online (Sandbox Code Playgroud)
或者htop
The*_*i R 54
要获取给定pid的线程数:
$ ps -o nlwp <pid>
Run Code Online (Sandbox Code Playgroud)
其中nlwp代表轻量级进程数(线程).因此ps别名nlwp到thcount,这意味着
$ ps -o thcount <pid>
Run Code Online (Sandbox Code Playgroud)
也有效.
如果要监视线程数,只需使用watch:
$ watch ps -o thcount <pid>
Run Code Online (Sandbox Code Playgroud)
要获取系统中运行的所有线程的总和:
$ ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'
Run Code Online (Sandbox Code Playgroud)
bdo*_*lan 45
进程中的每个线程都在其下创建一个目录/proc/<pid>/task.计算目录数,并获得线程数.
Pbx*_*Man 30
cat /proc/<PROCESS_PID>/status | grep Threads
Run Code Online (Sandbox Code Playgroud)
我的答案是更多的图形用户界面,但仍在终端内。Htop 可以通过一些设置来使用。
小智 6
如果您使用:
ps uH p <PID_OF_U_PROCESS> | wc -l
Run Code Online (Sandbox Code Playgroud)
您必须将1减去结果,因为"wc"计算的行之一是"ps"命令的标题.
这是一个显示给定进程的线程数的命令:
ps -L -o pid= -p <pid> | wc -l
Run Code Online (Sandbox Code Playgroud)
与其他ps基于答案不同,由于该选项,因此没有必要1从其输出中减去因为没有ps标题行-o pid=.
小智 5
$ ps H p pid-id
H-列出进程中的所有单个线程
要么
$cat /proc/pid-id/status
pid-id是进程ID
例如..(截断了以下输出)
root@abc:~# cat /proc/8443/status
Name: abcdd
State: S (sleeping)
Tgid: 8443
VmSwap: 0 kB
Threads: 4
SigQ: 0/256556
SigPnd: 0000000000000000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
222614 次 |
| 最近记录: |