【发布时间】:2017-07-28 08:38:55
【问题描述】:
通过查看/proc/<PID>/sched 中的调度统计信息,您可以获得如下输出:
[horro@system ~]$ cat /proc/1/sched
systemd (1, #threads: 1)
-------------------------------------------------------------------
se.exec_start : 2499611106.982616
se.vruntime : 7952.917943
se.sum_exec_runtime : 58651.279127
se.nr_migrations : 53355
nr_switches : 169561
nr_voluntary_switches : 168185
nr_involuntary_switches : 1376
se.load.weight : 1048576
se.avg.load_sum : 343837
se.avg.util_sum : 338827
se.avg.load_avg : 7
se.avg.util_avg : 7
se.avg.last_update_time : 2499611106982616
policy : 0
prio : 120
clock-delta : 180
mm->numa_scan_seq : 1
numa_pages_migrated : 296
numa_preferred_nid : 0
total_numa_faults : 34
current_node=0, numa_group_id=0
numa_faults node=0 task_private=0 task_shared=23 group_private=0 group_shared=0
numa_faults node=1 task_private=0 task_shared=0 group_private=0 group_shared=0
numa_faults node=2 task_private=0 task_shared=0 group_private=0 group_shared=0
numa_faults node=3 task_private=0 task_shared=11 group_private=0 group_shared=0
numa_faults node=4 task_private=0 task_shared=0 group_private=0 group_shared=0
numa_faults node=5 task_private=0 task_shared=0 group_private=0 group_shared=0
numa_faults node=6 task_private=0 task_shared=0 group_private=0 group_shared=0
numa_faults node=7 task_private=0 task_shared=0 group_private=0 group_shared=0
我一直试图弄清楚迁移和切换之间有什么区别,一些回复here 和here。总结这些回应:
-
nr_switches:上下文切换次数。 -
nr_voluntary_switches:自愿切换的次数,即线程被阻塞,因此另一个线程被拾取。 -
nr_involuntary_switches:调度程序将线程踢出,因为还有另一个饥饿的线程准备运行。
那么,migrations 是什么?这些概念是否相关?迁移是在核心和核心内的交换机之间进行的吗?
【问题讨论】:
标签: linux multithreading linux-kernel scheduler