利用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
.....
}

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

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

相关文章推荐

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

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

Linux下查看进程和线程

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

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

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

Linux下查看线程—pstack

需求: 研发改进了某一程序,time_point_logger线程由原来的6个线程改为3个,需验证是否修改了   思路: 1.找到目标程序所占的所有线程; 2.查看需求中所提线程的数...

Linux下查看进程和线程

在linux中查看线程数的三种方法 1、top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。 ...

Linux 如何查看进程的各线程的CPU占用

http://dongyajun.iteye.com/blog/613352博客分类: Linux LinuxJava.netJVMthread http://www.iteye.com...

Linux下获取线程ID的方法

gettid函数的使用
  • happen23
  • happen23
  • 2014年12月06日 19:39
  • 15722

[linux学习笔记]第2天:时间管理,命令帮助信息,文本查看,权限及用户管理,BASH和变量,脚本

*****第2天*****   20110719   ×××××××××××××××××××××××××××××××××××××××××××××××××××××file file_name      ...
  • deansrk
  • deansrk
  • 2011年07月21日 22:18
  • 2584

利用shell脚本“综合、集中”查看linux server常用软硬件信息

作为运维人员,了解每台服务器的硬件相关信息以及系统相关配置是必不可少的工作。虽然不难,却很零散,信息集中度不高。故而做了做了一套集中展示以上信息的“平台”(其实谈不上平台,收集-整理-展示而已),其原...
  • kai404
  • kai404
  • 2016年10月19日 17:22
  • 489

Linux Shell脚本查看Java线程的CPU使用情况

如何使用Linux Shell脚本查看Java线程的CPU使用情况? 线上Java应用,在业务高峰期的时候经常出现CPU跑高,需要查看实时的线程占用cpu情况,下面是一个很好用的脚本,可以快速导...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用Linux脚本+命令查看线程统计信息
举报原因:
原因补充:

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