linux 查看线程或cpu

来源:互联网 发布:ubuntu格式化硬盘 编辑:程序博客网 时间:2024/06/07 00:39

在arm嵌入式中不能通过

top -H -p pid 

来查看cpu。

所以我们通过查看/proc/pid/task/tid/stat 的信息和/proc/stat 中的信息来计算cpu

#!/bin/shecho '$1 threads cpu'for tid in `ls /proc/$1/task/`do        tm=`cat  /proc/$1/task/$tid/stat |awk  -F " " '{print $14+$15}'`        echo $tmdonetotal=`cat /proc/stat |awk -F " " 'NR==1{print  $2+$3+$4+$5+$6+$7+$8}'`echo $totalsleep 10sfor tid in `ls /proc/$1/task/`do        tm2=`cat  /proc/$1/task/$tid/stat |awk  -F " " '{print $14+$15}'`        echo $tm2donetotal2=`cat /proc/stat |awk -F " " 'NR==1{print  $2+$3+$4+$5+$6+$7+$8}'`echo $total2total3=`expr $total2 - $total`tm3=`expr $tm2 - $tm`cpus=`cat /proc/cpuinfo| grep "processor"| wc -l`echo $cpus $total3 $tm3tcpu=`expr $tm3 \* $cpus \* 100 / $total3`echo "thread cps: $tcpu"

附上/proc/stat 信息

cat /proc/stat
cpu 2255 34 2290 22625563 6290 127 456
cpu0 1132 34 1441 11311718 3675 127 438
cpu1 1123 0 849 11313845 2614 0 18
intr 114930548 113199788 3 0 5 263 0 4 [… lots more numbers …]
ctxt 1990473
btime 1062191376
processes 2915
procs_running 1
procs_blocked 0
这些数字指明了CPU执行不同的任务所消耗的时间(从系统启动开始累计到当前时刻)。时间单位是USER_HZ或jiffies(通常是百分之一秒)。
这些数据列的含义如下,我们从左至右逐一认识:
•user:正常的进程在用户态下执行时间累积
•nice: NICED的进程在用户态下执行时间列
•system:进程在内核态的执行时间累积
•idle:空闲时间累积
•iowait :等待I / O完成时间累积
•irq :硬中断时间
•softirq:软中断时间

/proc/pid/task/tid/stat 的信息详情http://blog.csdn.net/ctthuangcheng/article/details/18090701

线程Cpu时间threadCpuTime = utime +stime

原创粉丝点击