linux 查看线程或cpu

在arm嵌入式中不能通过

top -H -p pid 

来查看cpu。

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

#!/bin/sh
echo '$1 threads cpu'

for tid in `ls /proc/$1/task/`
do
        tm=`cat  /proc/$1/task/$tid/stat |awk  -F " " '{print $14+$15}'`
        echo $tm
done

total=`cat /proc/stat |awk -F " " 'NR==1{print  $2+$3+$4+$5+$6+$7+$8}'`
echo $total

sleep 10s

for tid in `ls /proc/$1/task/`
do
        tm2=`cat  /proc/$1/task/$tid/stat |awk  -F " " '{print $14+$15}'`
        echo $tm2
done

total2=`cat /proc/stat |awk -F " " 'NR==1{print  $2+$3+$4+$5+$6+$7+$8}'`
echo $total2

total3=`expr $total2 - $total`
tm3=`expr $tm2 - $tm`
cpus=`cat /proc/cpuinfo| grep "processor"| wc -l`
echo $cpus $total3 $tm3

tcpu=`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.youkuaiyun.com/ctthuangcheng/article/details/18090701

线程Cpu时间threadCpuTime = utime +stime

### 回答1: 要查看Linux系统中线程CPU占用率,您可以使用以下命令: ``` top -Hp <pid> ``` 其中,`<pid>`是线程的进程ID。运行此命令后,您将看到类似于以下输出的结果: ``` PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 user 20 0 100000 1000 1000 R 10.0 0.1 0:01.00 example_thread ``` 在输出结果中,`%CPU`一列显示了线程占用的CPU百分比。 ### 回答2: 在 Linux 系统中,可以使用以下命令来查看线程CPU 占用率: 1. top 命令 top 命令是一个常用的性能监控工具,可以用来实时查看系统的运行状态。要查看线程CPU 占用率,可以按下“Shift+H”键,这将按线程 ID 列表显示各线程CPU 占用率。 2. ps 命令 ps 命令可以查看系统的进程状态,通过加上参数“-L”可以查看进程的线程信息。以下是使用 ps 命令查看指定进程 ID 的线程信息及其 CPU 占用率的命令: ``` ps -mp <PID> -o THREAD,tid,time,%cpu ``` 其中 PID 为进程 ID,tid 为线程 ID,time 为线程运行时间,%cpu线程 CPU 占用率。 3. perf 命令 perf 命令是一个性能分析工具,可以用来对程序进行详细的性能分析。以下是使用 perf 命令查看指定线程 ID 的 CPU 占用率的命令: ``` perf top -p <TID> ``` 其中 TID 为线程 ID。 除了以上几种命令,还有一些第三方工具可以用于查看线程CPU 占用率,例如 htop、glances 等。不同的工具具有不同的特点,用户可以根据需要选择使用。 ### 回答3: 使用Linux查看线程CPU占用率的方法有多种。这里列出一些比较常用的方法。 1. top命令 top命令可以实时监视系统的进程和资源使用情况,也可以查看线程CPU占用率。在top命令中按下H键,可以将线程展开显示,并按照CPU占用率从高到低排序。可以使用PID线程名称来定位需要查看线程。 2. ps命令 ps命令可以显示系统中的进程信息,同时也可以查看线程CPU占用率。使用ps命令时,可以使用pidstatps -Lf命令来查看线程CPU占用率。 3. htop命令 htop是top命令的改良版,可以方便地查看线程CPU占用率。启动htop后按下H键,即可展开显示线程信息,并按照CPU占用率排序。 4. pidstat命令 pidstat命令可以显示某个进程线程CPU使用情况,包括CPU占用率、用户态和内核态占用比例、IO使用情况等。可以使用pidstat -u -p [pid] -t命令来查看某个线程CPU占用率。 总之,在Linux查看线程CPU占用率有很多种方法,可以根据具体需求选择合适的命令和参数来查看所需信息。无论是使用top、ps、htop还是pidstat,都能够得到准确的线程CPU占用率信息,方便用户进行优化和调试工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值