有些时候需要确实进程内部当前运行着多少线程,那么以下几个方法值得一用.
①根据进程号进行查询:
# pstree -p 进程号
# top -Hp 进程号
# pstree -p ◆ps -e | grep server | awk '{print $1}'◆
# pstree -p ◆ps -e | grep server | awk '{print $1}'◆ | wc -l
这里利用了管道和命令替换,
关于命令替换,我也是今天才了解,就是说用◆◆括起来的命令会优先执行,然后以其输出作为其他命令的参数,
上述就是用 ps -e | grep server | awk '{print $1}' 的输出(进程号),作为 pstree -p 的参数
管道和命令替换的区别是:
管道:管道符号"|"左边命令的输出作为右边命令的输入
命令替换:将命令替换符"◆◆"中命令的输出作为其他命令相应位置的参数
Linux系统中查看线程数的方法:
①.、使用top命令,具体用法是 top -H,加上这个选项,top的每一行就不是显示一个进程,而是一个线程.
使用ps命令来查看进程的时候,进程状态分别对应的含义如下
D不可中断睡眠 、S可中断睡眠 、W正在换页、R正在运行或可运行
方法一:PS
在ps命令中,"-T"选项可以开启线程查看.下面的命令列出了由进程号为pid的进程创建的所有线程.
$ ps -T -p pid
"SID"栏表示线程ID,而"CMD"栏则显示了线程名称.
方法二: Top
top命令可以实时显示各个线程情况.要在top输出中开启线程查看,请调用top命令的"-H"选项,该选项会列出所有Linux线程.在top运行时,你也可以通过按"H"键将线程查看模式切换为开或关.
$ top -H
要让top输出某个特定进程pid并检查该进程内运行的线程状况:
$ top -H -p pid
方法三: Htop
一个对用户更加友好的方式是,通过htop查看单个进程的线程,它是一个基于ncurses的交互进程查看器.该程序允许你在树状视图中监控单个独立线程.
Linux系统查看某个进程的线程数可以通过ps命令来进行查询.以firefox进程为例.
其中NLWP
列为线程数
可以用下面的命令将 cpu 占用率高的线程找出来:
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
这个命令首先指定参数'H',显示线程相关的信息,格式输出中包含:user,pid,ppid,tid,time,%cpu,cmd,然后再用%cpu字段进行排序.这样就可以找到占用处理器的线程了.
查看哪个进程线程占用cpu过高; top / ps -aux, 获得进程号
确定哪个线程占用cpu过高,进入进程号的目录:/proc/pid/task,
在 Linux 下 top 工具可以显示 cpu 的平均利用率(user,nice,system,idle,iowait,irq,softirq,etc.),可以显示每个 cpu 的利用率.但是无法显示每个线程的 cpu 利用率情况,这时就可能出现这种情况,总的 cpu 利用率中 user 或 system 很高,但是用进程的 cpu 占用率进行排序时,没有进程的 user 或 system 与之对应.
以上就是土嘎嘎小编为大家整理的linux显示线程命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!