@
timewarp 从收益的角度会比较难,很多东西都是说不清道不明的,如果谈收益,老板还会跟你谈 ROI ,投入是否值得。
但从解决业务问题和满足业务需求的角度就容易了。以我们从 4.19 升级到 6.1 为例:
1. 我们遇到的一些内核问题在高版本已经修复了,但回合过来工作量很大。
2. 一些业务想要使用一些新特性,但 4.19 不支持,回合过来这些特性也费时费力,比如有业务想使用 iouring ,有些业务想使用 bpf networking 。
3. 新内核可以更好的追踪业务问题。使用 bpf 来更高效的找到业务问题的 rootcause ,bpf 在各个内核版本迭代都很快,升级到新版本更容易定位业务问题。
4. 新硬件,这个就看公司了,拼多多在新硬件的引进上是相对较快的 新硬件的新特性往往需要新内核支持。
这就要求在平时工作中把当前内核无法解决的问题给记录下来,每个问题都有对应的业务,这些业务在你想要升级内核的时候就会帮助你。
至于我们想要升级到 6.12 ,主要是:
1. 容器场景下 cfs 表现堪忧,试试 eevdf 或者 sched_ext ,我们在测试环境中验证了 eevdf 在某些场景确实优于 cfs 。
2. bpf 又做了很多迭代,比如 token ,可以满足业务在自己容器跑 bpf 而需要特权或者 cap 。
3. 我们在 6.1 上又积累了一些新问题。
4. 我们又引入了一些新硬件。
但我觉得最重要的一点是,公司高层对待新技术的开放性,没有这一点,其他上面我写了那么多文字都是扯淡。拼多多在这方面远好于贵司。高层的态度决定了公司的风格。