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。
行胜于言,自强不息。