linux绑核方法

1 isolcpus:

isolcpus功能由来,可以追溯到v2.6.11(2005年版本)就已经存在了isolcpus。根据kernel-parameters.txt 上的解释,”isolcpus功能用于在SMP均衡调度算法中将一个或多个CPU孤立出来。同时可通过亲和性设置将进程置于 “孤立CPU”运行,isolcpus后面所跟的cpu参数,可设置孤立0~最大CPU个数-1个cpu。这种方法是推荐使用的孤立cpu的方式,与手动设置每个任务的亲和性相比,后一种方式降低了调度器的性能”。

    isolcpus带来的好处是有效地提高了孤立cpu上任务运行的实时性。该功能在保证孤立cpu上任务的运行,同时减少了其他任务可以运行的cpu资源,所以需要使用前对cpu资源进行规划:

isolcpus功能使用注意事项:

(1)决定需要孤立多少、哪些cpu。

如果需要孤立多个cpu,应当尽量使孤立cpu与非孤立cpu尽量不属于同一个域。

(2)dts启动参数添加孤立cpu。

修改dts文件,添加isolcpus=2,3,逗号分隔。将cpu2和3绑核。

(3) 禁止使用中断均衡服务。

中断均衡会使得孤立核上中断不确定性,导致孤立核上任务实时性能下降。同时避免均衡带来的效益会被cache刷新的开销抵消掉。

(4)了解所有中断,进行中断亲和的设计与设置。

(5)决定运行在孤立cpu上的任务。

2 修改方法:

例如将cpu2,3绑核:

dts中启动参数boot中加入 isolcpus=2,3。

posted @ 2022-08-27 11:31  Action_er  阅读(1147)  评论(0编辑  收藏  举报