$cat /proc/sched_debug | grep "cpu#3" -A 73
Sched Debug Version: v0.09, 2.6.32-220.23.1.tb704.el6.x86_64 #1
now at 2805981745.049080 msecs
.jiffies : 7100649040 //cpu时间
.sysctl_sched_latency : 20.000000
.sysctl_sched_min_granularity : 4.000000
.sysctl_sched_wakeup_granularity : 4.000000
.sysctl_sched_child_runs_first : 0.000000
.sysctl_sched_features : 3183
.sysctl_sched_tunable_scaling : 1 (logaritmic)
cpu#3, 2399.773 MHz
.nr_running : 2 //cpu3 rq运行队列的进程个数(包括正在运行的)
.load : 2048 //cpu3 rq运行队列的load
.nr_switches : 42606615 //cpu3累计的进程切换次数
.nr_load_updates : 220734972 //load更新次数,也是调用update_cpu_load次数
.nr_uninterruptible : 0 // uninterruptible发生的次数
.next_balance : 7100.059585 //下次执行负载均衡的时间
.curr->pid : 25329 //当前运行的进程pid
.clock : 2801062666.343504 //当前运行队列的clock
.cpu_load[0] : 2048 //该cpu的历史load
.cpu_load[1] : 2048
.cpu_load[2] : 2048
.cpu_load[3] : 2048
.cpu_load[4] : 2048
.yld_count : 1 //调用yield次数
.sched_switch : 0
.sched_count : 160158232 //调用schedule的次数
.sched_goidle : 21108490 //切换到idle进程的次数
.avg_idle : 1000000 // cpu处于idle的平均时间
.ttwu_count : 21244621 //此cpu try_to_wake_up唤醒进程的次数
.ttwu_local : 20424010 //本地唤醒的次数,即进程睡眠前所在cpu为当前cpu
.bkl_count : 1 //此cpu上大内核锁调用次数
//下面是相应的cfs_rq内容,另外我们的执行进程在/cgroup/one 这个二级cgroup里
cfs_rq[3]:/one //one group
.exec_clock : 22907786.300379 //
.MIN_vruntime : 22901158.741275 //红黑树最左边的vruntime
.min_vruntime : 22901158.741275 //cfs_rq当前的min_vruntime
.max_vruntime : 22901158.741275 //最右边的vruntime(这里因为只有一个,另一个在运行,所以最左与最右相等)
.spread : 0.000000
.spread0 : -300525615.387521 // cpu0上的min_vruntime与当前cpu的min_vruntime差值
.nr_spread_over : 0
.nr_running : 2 //该cfs_rq运行队列的进程个数(注:虽然运行的进程不在红黑树里,但是它还是cfs_rq里)
.load : 2048 //该cfs_rq的load,是它下面两个进程的load之和(在account_entity_enqueue、account_entity_dequeue更新)
.load_avg : 16496.090916 //update_cfs_load的统计值
.load_period : 8.054731
.load_contrib : 2047
.load_tg : 2047
.se->exec_start : 2801062666.343504 //该cgroup的se调度实体(非它下面进程的se,而是它自身的se)下面的关于se的内容与每个进程自身的/proc/<pid>/sched内的含意是一样的
.se->vruntime : 188458882.115828
.se->sum_exec_runtime : 22907786.300379
.se->wait_start : 0.000000
.se->sleep_start : 0.000000
.se->block_start : 0.000000
.se->sleep_max : 0.000000
.se->block_max : 0.000000
.se->exec_max : 1.073055
.se->slice_max : 0.000000
.se->wait_max : 0.041254
.se->wait_sum : 121.099885
.se->wait_count : 28673
.se->load.weight : 2048 //这个se本身的load,它是通过update_cfs_shares更新
cfs_rq[3]:/ //同上
.exec_clock : 182645727.024410
.MIN_vruntime : 0.000001
.min_vruntime : 188458882.115828
.max_vruntime : 0.000001
.spread : 0.000000
.spread0 : -134967892.012968
.nr_spread_over : 4
.nr_running : 1
.load : 2048
.load_avg : 0.000000
.load_period : 0.000000
.load_contrib : 0
.load_tg : 0
runnable tasks: //运行队列里的进程,有两个28733,25329,并且当前运行的是25329
task PID tree-key switches prio exec-runtime sum-exec sum-sleep
----------------------------------------------------------------------------------------------------------
cpu_test 28733 22901158.741275 26280 120 22901158.741275 22600181.659870 0.000000 /one
R cpu_test 25329 22901163.146132 404 120 22901163.146132 6413.013913 0.000000 /one
tree-key:调度进程的se->vruntime;switches:主动与被动切换之和;exec-runtime:se->vruntime;sum-exec:se->sum_exec_runtime(实际运行的物理时间);sum-sleep:se.sum_sleep_runtime;最后加所属的cgroup
|