CP调度
Posted hellokitty2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CP调度相关的知识,希望对你有一定的参考价值。
一、proc文件解释
1. /proc/sys/kernel/sched_short_sleep_ns
调度器在任务运行短暂峰值时总是试图避免唤醒idle cpu。如果任务平均峰值小于 sysctl_sched_short_burst 纳秒,并且睡眠平均时间大于 sysctl_sched_short_sleep 纳秒,那么此任务倾向被打包。提高这个值会导致任务更频繁被打包,有利于功耗,但是会损害性能。将这个值设置为0将会disable任务打包。
2./proc/sys/kernel/sched_short_burst_ns
跟上面参数一起使用,确定任务是否适宜打包。提高这个值也会导致任务任务打包更频繁,设置为0将disable此值。
3./proc/sys/kernel/sched_group_upmigrate
这个值是个百分比。任务需求相对cpu能力的百分比,如果这个任务组的总需求超过这个cpu,那么这个cpu对这个任务组来说太小。调度器将尝试找到一个更强劲的cpu来处理此任务组。提高这个值将会阻止任务往大核迁移,有利于功耗,不利于性能。换句话时候就是上大核的阈值。
4./proc/sys/kernel/sched_group_downmigrate
同上,也是个百分比,如果任务组已经迁移到大核,并且任务组总需求cpu将会降到 sched_group_downmigrate 以下,此时调度器将会找到一个最佳能耗的cpu来完成任务组执行;降低此值将会阻止任务迁移到小核上,对性能有利。就是从大核下下来的阈值。
5. /proc/sys/kernel/sched_freq_aggregate
一个标志,用来控制调度器是否应该将相关线程组的总的cpu忙时间报告给Governor用来设置cpu频率,关闭此功能有利于降低功耗。
6./proc/sys/kernel/sched_freq_aggregate_threshold
时间阈值(ms),这个是cpu忙时间,当总的任务组的忙时间超过这个值时,调度器才会进行频率聚合。
参考: https://www.geek-share.com/detail/2713433601.html
以上是关于CP调度的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核进程优先级与调度策略 ① ( SCHED_FIFO 调度策略 | SCHED_RR 调度策略 | 进程优先级 )
Linux 内核调度器 ④ ( sched_class 调度类结构体分析 | yield_task 函数 | heck_preempt_curr 函数 | task_struct 函数 )