Linux 为开发人员和工程师提供了一种"调整"其运行的方法,它提供了数千个单独的参数,可以调整开源内核管理资源的方式。这种调整方式可以更快捷地提高运行性能,而不需要重新编译内核,但这仍然是一项具有挑战性的工作,即使对于最熟练的自由和开放源码软件编程人员来说也是如此。
内核调优是一项极具挑战性的工作,因此有人试图利用人工智能来代替人类开发人员处理这项工作。中国科技公司字节跳动(ByteDance)最近公布了 Linux 内核自动调整的测试结果,这是一种基于人工智能的解决方案,可以解放人类工程师,通过分析历史数据做出更好的调整决策--人类通常会发现这是一项具有挑战性的任务。
通过调整实现最佳 Linux 性能是一个耗时的过程,需要 Linux 专家进行大量实验。不同的工作负载需要针对不同的内核参数集采用不同的调整方法。字节跳动的开发人员 Cong Wang 提到,在大规模数据中心(如该公司使用的数据中心)中,针对"数以百计"的不同工作负载手动调整 Linux 内核几乎是不可能的。
虽然确实存在旨在简化内核调整的工具,但它们提供的是特定类型的优化。字节跳动的方法旨在推出内核调整领域的首个自动化解决方案--一种能够以最小的工程投入覆盖所有 Linux 调整参数的技术。
Wang的团队特别关注Linux内存管理系统的优化。通过采用贝叶斯优化等机器学习算法,该公司发现自动参数调整可以取得比大多数Linux内核工程师通常所取得的更好的结果。
字节跳动的自动调整工具旨在根据特定的工作负载和硬件配置自动调整 Linux 内部设置。内核经过动态调整,可确保在各种情况下都能实现最佳性能,从而解决了长期以来需要针对每个计算实例手动调整内核的难题。
在大多数情况下,Wang 及其同事基于人工智能的自动调整似乎效果显著。根据字节跳动的介绍,机器学习算法可以通过实时监控内核性能来动态优化系统,通过优化资源使用来提高效率。人工智能系统还拥有友好的用户界面,让技术知识有限的用户也能从更好用的内核中受益。同时,高级用户可以自定义自动调整参数。
字节跳动声称,机器学习算法可将应用程序的内存使用率降低 30%,或优化 NGINX 服务器上的 HTTP 网络延迟,从而使网络性能比手动调整提高 12%。在云计算和数据中心场景中,这些改进可以显著节约成本并优化性能。开发人员承认,通过机器学习进行内核自动调整并非在每种情况下都有效,但预计它将变得越来越必要。
访问文档了解更多:
https://lpc.events/event/17/contributions/1520/attachments/1152/2582/Linux%20Kernel%20Autotuning.pdf