利用Linux脚本+命令查看线程统计信息

原创 2015年07月08日 11:27:47

最近在项目上写了个用于并行计算的线程池工具,遇到了性能瓶颈,于是求助检测软件nmon试图观察线程的统计数据。可惜nmon的信息粒度太大,无法满足需求。

后来发现神奇的Linux下的/proc目录查看具体的线程统计数据,在目录 /proc/PID/stat下面可以找到关于线程的绝大部分详细信息,可惜这个文件的客户体验太差,居然是一大堆以空格分割的纯数据,汗-_-…….无奈之下只好手动写了个简单的脚本,利用shell+awk弄出个小工具来简单检测线程状态,先上效果图:
这里写图片描述

awk是一个非常强大的文本处理工具,可以把它看作一门小的脚本语言。其实完成这个小工具可以还用其他的工具实现,但awk的以“行”为单位的处理方式在这个特殊的数据格式中很有帮助。/proc/pid/stat中的数据是以空格作为分隔符隔离开每个数据的,所以awk在这里大有用武之地。
思路很简单:
用SHELL命令控制读入对应的/proc/pid/stat,然后用awk进行文件格式化输出
由于临时需要马上学的shell和awk脚本,所以代码写的很不好看
上代码:
.sh文件

#Please replace PID according your wish
while :
do 
cat /proc/PID/stat | awk -f stat_awk_script
sleep 1
done

stat_awk_script部分代码:

{
printf "=======================GET THREAD STAT===================\n"
printf " PID: %-15s MODULE_NAME:%-15s TASK_STATE:%-15s \n",$1,$2,$3
printf " PPID:%-15s PGID:%-22s SID:%-15s \n",%4,$5,$6
printf " TTY_NR%-13s TTY_PGRP:%-18s TASK_FLAGS:%-15s",$7,$8,$9
.....
}

如有有别的现成工具可以满足观察线程各种统计数据,请告诉我……直觉上,我觉得我已经在重复造轮子了

版权声明:本文为博主原创文章,未经博主允许不得转载。

linux中用top、ps命令查看进程中的线程

在Linux上显示某个进程的线程的几种方式。   方法一:PS 在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。 1.$ ps -T...
  • inuyashaw
  • inuyashaw
  • 2017年02月14日 10:31
  • 7437

Linux下查看进程和线程

查看进程 1. top 命令 top命令查看系统的资源状况   load average表示在过去的一段时间内有多少个进程企图独占CPU   zombie 进程 :不是异常情况。一个进...
  • wind19
  • wind19
  • 2011年12月08日 17:47
  • 57873

linux下查看Java线程

为了方便我下次查找所以写了 这个博客记录下别人的 以下是别人的链接 http://www.jiacheo.org/blog/279 https://www.zhihu.com/questi...
  • u013086392
  • u013086392
  • 2017年01月29日 16:39
  • 3166

linux 查看线程信息

在linux操作系统中可以使用ps -eLf命令来查看线程信息: 下面的数据为db2数据库的db2sysc进程中所包括的线程: 192.168.100.228 [sde ~]$ ps -eL...
  • liufeng1980423
  • liufeng1980423
  • 2011年01月05日 09:21
  • 37183

linux 中线程的查看方式

在Linux中查看线程数的三种方法1、top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。 2、ps xH ...
  • lijingshan34
  • lijingshan34
  • 2017年04月18日 12:06
  • 898

Linux 中统计一个进程的线程数

如果你想看到 Linux 中每个进程的线程数,有以下几种方法可以做到这一点。   方法一: /proc proc 伪文件系统,它驻留在 /proc 目录,这是最简单的方法来查看任何活...
  • lh2016rocky
  • lh2016rocky
  • 2017年03月16日 16:28
  • 1738

使用自动化shell脚本查找CPU使用的详细线程信息

项目加了些拦截器代码后,CPU报警,显示CPU使用率超过100%; 想要查找到底是哪些代码消耗的资源过多,从网上找到一篇博文,转载如下: http://blog.csdn.net/guixunlong...
  • u011453631
  • u011453631
  • 2014年11月07日 14:20
  • 2251

【并发编程】通过命令行获取线程信息

常用命令 adb shell ps -t 查看进程中线程的信息 -x 查看utime和stime -P 查看属性 -p 查看调度策略,通常是查看一个app处于前台还是后台 -c ...
  • manoel
  • manoel
  • 2014年10月11日 11:58
  • 3801

Linux如何查看进程、杀死进程、启动进程等常用命令

关键字: linux 查进程、杀进程、起进程 1.查进程     ps命令查找与进程相关的PID号:     ps a 显示现行终端机下的所有程序,包括其他用户的程序。     ps -A 显...
  • wojiaopanpan
  • wojiaopanpan
  • 2012年02月23日 11:36
  • 445151

linux ps 查看进程命令

linux 中ps命令是Process Status的缩写。ps命令可以列出系统中当前运行的进程,所列出的进程是在执行ps命令这个时刻正在运行的进程。 如果要动态显示进程信息,需要使用top命令。通过...
  • fdipzone
  • fdipzone
  • 2015年02月28日 23:26
  • 23471
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用Linux脚本+命令查看线程统计信息
举报原因:
原因补充:

(最多只允许输入30个字)