linux 实时线程

通过设置/proc/sys/kernel/sched_rt_runtime_us 和/proc/sys/kernel/sched_rt_period_us配合实现;sched_rt_period_us默认值是1s(1000000us),sched_rt_runtime_us默认是0.95s(950000us);通过此项配置的RT进程利用率,是针对整个CPU的,对于多核处理器,每个CPU仍然可以跑到100%,那么怎么让每cpu的利用率都是95%呢?可以设置

echo NO_RT_RUNTIME_SHARE > /sys/kernel/debug/sched_features;这样每个核不去借用别的cpu时间,可以达到95%的限制

[root@localhost ~]# cat  /sys/kernel/debug/sched_features
GENTLE_FAIR_SLEEPERS START_DEBIT NO_NEXT_BUDDY LAST_BUDDY CACHE_HOT_BUDDY WAKEUP_PREEMPTION ARCH_POWER NO_HRTICK NO_DOUBLE_TICK LB_BIAS NONTASK_POWER NO_TTWU_QUEUE PREEMPT_LAZY RT_PUSH_IPI NO_RT_RUNTIME_SHARE RT_RUNTIME_GREED NO_LB_MIN
[root@localhost ~]# cat /proc/sys/kernel/sched_rt_period_us
1000000
[root@localhost ~]# cat /proc/sys/kernel/sched_rt_runtime_us
950000
[root@localhost ~]#
[root@localhost ~]# chrt -p 23981
pid 23981's current scheduling policy: SCHED_FIFO
pid 23981 的当前调度优先级:20
[root@localhost ~]# chrt -p 24232
pid 24232's current scheduling policy: SCHED_RR
pid 24232 的当前调度优先级:30

参考:
https://www.cnblogs.com/wang_yb/p/3942208.html

posted @ 2021-09-03 18:09  Xuperior  阅读(776)  评论(0编辑  收藏  举报