字节跳动声称使用AI调优Linux内核

2023年11月20日 由 camellia 发表 604 0

Linux对于大多数工作来说运行良好,但要使其发挥出色的性能需要对内核进行调优,这从来都不是件容易的事情。字节跳动有一个提议可以让这变得更容易。


4


在Linux Plumbers Conference(Linux管道工大会)上,这是一个仅限邀请的顶级Linux内核开发者会议,字节跳动Linux内核工程师王聪提出,我们应该使用人工智能(AI)和机器学习(ML)来为特定工作负载调优Linux内核,以达到最佳效果。


一般而言,Linux内核对于大多数任务来说工作得相当不错。但是,要想让它为某项特定工作发挥最大效用,你必须通过设置其参数来精细调整,以便获得最佳可能的结果。这种方法有一个小问题。参数有成千上万个。即使对于Linux专家来说,为了达到最佳性能而调整这些参数也是一项长期而艰巨的工作。当然,不同的工作负载需要针对不同的Linux内核参数集进行不同的调优。因此,正如王聪所说,“在像字节跳动这样的大型数据中心,几乎不可能手动为数百种不同的工作负载调优Linux内核参数。”


工具如System Management Interface Tool(SMIT)、Sysctl和TuneD可以提供帮助。但是它们只是让你更容易地进行手动内核调优更改。还有一些“智能”程序,如Red Hat的BayOp,它使用ML特别优化网络应用效率,但它并不是一个通用的AI/ML程序;它是为某种特定的Linux调优而设计的。


字节跳动正在研究的是首次尝试用最小的工程努力自动化整个Linux内核参数调优过程。具体来说,字节跳动正在研究对Linux内存管理进行调优。字节跳动发现,使用机器学习算法,如贝叶斯优化,自动调优甚至可以击败大多数Linux内核工程师。


为什么呢?嗯,正如王聪幽默地指出,“并不是要让Linux内核工程师失业。”不,目标是“让人类工程师从为每个单个工作负载调优性能中解放出来。同时,利用历史数据做出更明智的决定,而人们通常对此很吃力。最后,但同样重要的是,找到比我们当前使用的试错法、启发式方法更好的解决方案。”


如何做到这一点?自动调优系统旨在根据特定的工作负载和硬件配置自动调整Linux内核的内部设置。这种动态调整确保了最佳性能,解决了Linux社区长期以来手动调优内核以适应特定场景的挑战。为此,AI/ML框架使用了多种算法,如贝叶斯优化、遗传算法和模拟退火/进化算法。


结果怎样?


  • 动态优化:系统持续监测内核的性能,并实时调整诸如CPU频率缩放和内存管理等设置。


  • 提高效率:通过优化资源使用,自动调优系统显著提高了Linux系统的效率,特别是在工作负载多变的环境中。


  • 用户友好界面:系统包括一个用户友好的界面,允许即使技术知识有限的人也能从增强的内核性能中获益。


  • 可定制设置:高级用户可以定制自动调优参数,使系统适应他们的特定需求。


虽然仍处于初期阶段,但字节跳动已经看到了一些成功。例如,通过使用DAMON(Linux内核子系统,用于内存访问监控和优化)与该框架的结合,他们能够为MySQL应用程序找到最佳方案。他们通过运行不同的DAMON方案并比较它们的性能来实现这一点。他们发现可以将应用程序的内存使用量减少30%。对于大型应用程序来说,这是一个真正的节省。


在另一个案例中,字节跳动通过优化NGINX服务器上16个内核sysctl参数的调优,能够优化HTTP网络延迟。在最佳情况下,ML调优使得NGNIX的网络性能比专家手动调优提高了12%。同样,这是一个显著的改善。


字节跳动并不声称其AI/ML方法将适用于每一个Linux调优工作,但王聪确实说,“尽管存在局限性,我们相信内核机器学习不仅是可能的,而且也是必要的。”


对Linux应用程序来说,这是一个潜在的游戏规则改变者。通过简化内核优化,它将使Linux对更广泛的用户和应用程序更容易访问和高效。特别是,我看到自动调优系统将几乎提升所有服务器、云计算和数据中心应用程序的性能。

文章来源:https://www.zdnet.com/article/tuning-the-linux-kernel-with-ai-according-to-bytedance/
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消