12月30日获悉,操作系统(Tencent OS)内核团队在Linux社区沉默提交的两项改造,凯旋措置了自2021年以来一直困扰着一线厂商,并在近期让多个Linux顶级Maintainer(软件吝啬者)困惑的要津内核bug。这一改造决策最终被归并插足后续的LinuxLTS(Long-term support)版块中,并取得了Linux之父Linus Torvalds的高度评价。
Linus:“不解,觉赞”
大要两个月前,Linux社区中的一封邮件引起了等闲温顺。其实践主若是,自2021年12月起,Linux内核中启用了Large folio特质(梗概擢升系统访存性能)的XFS文献系统用户(但不仅限于XFS)有概率遭受缓存损毁导致的宕机问题。该问题受到了社区的高度喜欢。
XFS是最常见的Linux文献系统之一,在常见的Linux使用场景中,如行状器、桌面等,XFS被手脚主力文献系统多数摄取。尽管该bug较难触发,但其潜在风险仍然让社区和各大厂商感到不安。Meta和Cloudflare等公司致使不得不暂时禁用XFS的Large folio特质以确保系统踏实。
一个多星期的议论中,专家迟迟莫得捕捉到bug所激发的具体位置或印迹,仅仅证据bug照实存在而况亟需建造。几位顶级Maintainer,以及Linus Torvalds本东谈主也参与插足议论。
社区在等闲排查的进程中,斯须发现这个问题在新的Linux内核版块中也曾不复存在。进一步的探访发现,这一变化归功于腾讯云操作系统内核团队在本年4月提交的两项改造。
正本,腾讯云操作系统内核团队在进行操作系统性能优化研发时发现,操作系统内核使用XArray(内核顶用于处理广鸿沟地址索引结构的基数树处理库)管制Page Cache(页面缓存)时,会因XArray在分拨内存时莫得探究好并发修改的问题,导致分拨的内存指针可能指向极度的数据,对外领略为XFS与其他引入了Large Folio特质的文献系统均有概率出现卡死宕机致使数据丢失的情况。
针对这一问题,腾讯云操作系统内核团队在优化Page Cache对Xarray的使用上,引入了一个新的补助函数,简化了Xarray的中Large Folio的插入算法,并进一步梳理和建造了内存分拨的并发处理,确保了即使在多线程环境下,内存分拨和开释也能正确进行。这些转变不仅建造了数据损坏的问题,还擢升了操作系统系统的性能。
阅历了数个星期的议论与分析后,这些转变被社区以为是最好的建造决策。
如今,这一建造决策也曾被合入了最新的操作系统版块中,为这一问题画上了句号。同期,决策也极大擢升了大文献在Page Cache中的读入性能,数以十亿计开动Linux的迷惑,皆会因此快小数。
除了此次孝顺外,腾讯云操作系统内核团队比年来通过与社区的细密互助,在swap(交换空间)、memory cgroup(内存完结组)、页面与热度管制等方面抓续进行本事改进,不休擢升Linux内核的性能和踏实性,助力操作系统本事发展。
现在,腾讯云也开发了自研的行状器操作系统版块TencentOS Server,装机限制跳跃1000万套,除了支抓腾讯自研的国民级诈欺,也等闲行状了互联网、金融、政务、工业、动力、交通等行业客户。