/proc/<pid>/schedstat

$cat /proc//schedstat

First: time spent on the cpu, task->se.sum_exec_runtime,这个值与上面的se.sum_exec_runtime一样只是上面的除于1,,
Second:time spent waiting on a runqueue,这个值与上面的se.wait_sum一样
Third: of times run on this cpu, task->sched_info.pcount,这个值跟上面的se->nr_switches一样 se.sum_exec_runtime: 2843625.998498 //累计运行的物理时间时间
se.wait_sum : 15.615407 //累计在就绪队列里的等待时间
#!/bin/bash

while [  ]                     #监控进程一直做死循环操作

do
for process_pid in $(ps aux|grep 1ea171ed |awk '{print $2}'|grep -v ) #循环查找含"1ea171ed"的进程号 do
echo $process_pid pre_schedstat=`cat /proc/$process_pid/schedstat |awk '{print $1}'` #取 进程的 schedstat 相关数值
echo $pre_schedstat sleep
last_schedstat=`cat /proc/$process_pid/schedstat |awk '{print $1}'` #取 30秒后进程的 schedstat 相关数值
echo $last_schedstat if [ $pre_schedstat -eq $last_schedstat ];then # 如果前后数值保持不变,则做kill - 处理
kill - $process_pid
echo " success kill dead process $process_pid "
fi done
sleep done
05-28 12:17