2.8.6 总结

负载均衡是充分利用多核CPU的重要算法,本文只是粗略地介绍了算法的总体思路,意在为读者搭建一个大致框架,还有很多内容并没有提及,例如:

  • 任务放置 创建新任务、唤醒新任务时如何根据各个CPU的负载情况选择合适的目标CPU来执行任务

  • EAS(Energy Aware Scheduling) 系统会充分考虑CPU 能耗来做进一步的决策,详细内容可以参考:https://docs.kernel.org/scheduler/sched-energy.html

  • 统计信息

具体实现中还涉及到很多细节,例如如何计算算力、如何最快地选择目标CPU等等,读者如果还想深入,可以参考资源列表及内核源码。

参考资料:

  • https://www.kernel.org/doc/html/latest/scheduler/sched-domains.html

  • https://www.kernel.org/doc/html/latest/scheduler/sched-capacity.html

  • https://lwn.net/Articles/80911/

  • https://cdmana.com/2021/05/20210513160921291a.html

  • http://www.wowotech.net/process_management/load_balance_detail.html

  • http://tjpm.blog.chinaunix.net/uid-23141914-id-5767451.html

  • https://pwl999.github.io/2017/12/16/linux_scheduler/

Last updated