Linux Kernel 5.17 将为 TCP 性能带来重大优化


Linux 5.16 内核的合并窗口刚刚结束,预计将在今年年底发布。现在 Linux 5.17 内核的子系统开发树已经开始了相关的合并工作。根据 Phoronix 的报道,Google 工程师近日提交的补丁在数据中心内提供了可观的 TCP 性能方面的优势。

Linux 内核维护者 David Miller 已合并由 Google 工程师 Eric Dumazet 提交的这些 TCP 优化。这里面最令人兴奋的部分是这个补丁在 TCP 代码中延迟释出套接字锁 (socket lock) 后的 SKB 释放。现有的内核代码被发现引入了过多的延迟,这种情况可以通过在保持套接字锁定时不执行 SKB 释放来避免。不过目前的做法是,它们将在套接字锁被释放或直接从 BH 处理程序释放后被释放。

测试结果显示这“大大改善了性能”,至少对于数据中心的大量 TCP 流量而言是如此。在一个 100Gbit 的网卡上进行 TCP 网络吞吐量的测试,结果显示,MTU 大小为 1500,范围从 55 到 65Gbit,而 MTU 为 4096 以上,范围从 82 到 95 Gbit。

虽然目前的优化只涉及到 TCP,但合并后类似的优化可能会扩展到其他协议。这些 TCP 优化预计将在明年的 Linux 5.17 内核中出现。


相關推薦

2021-12-23

Alder Lake 是英特尔第 12 代酷睿处理器,这也是英特尔在 x86 架构的处理器上首次采用 P 核 + E 核混合架构,相比此前的处理器改动幅度巨大。按照英特尔的计划,Alder Lake 处理器以及搭载该处理器的 PC 将从明年年初开始陆续推出

2022-04-14

每三个月升级一次 ,那么建议使用最新的 LTS 版本:Linux kernel 5.15 。

2022-06-16

Linux 5.17 已结束生命周期,在 kernel.org 上被标记为 EOL ,这意味着该版本不会再有任何 Bug 修复和安全补丁。 Linux 5.17 是一个非 LTS 版本,只有为期三个月的支持,而且 5.17 的维护版本似乎是最少的,只有 15 个。前一个退役

2022-08-22

Linux 5.18 已结束生命周期,在 kernel.org 上被标记为 EOL ,这意味着该版本不会再有任何 Bug 修复和安全补丁。 Linux 5.18 于 2022 年 5 月底发布是一个非 LTS 版本,只有为期三个月的支持,在维护了 19 个版本之后退役。 仍想

2022-02-23

码,用于获取随机字节的 getrandom() 调用能够获得更好的性能。在配备英特尔 Xeon E5-2697 v2 @ 2.70GHz CPU 和 112G 内存的设备上进行 stress-ng getrandom() 基准测试后,更是获得了 18450% 的性能提升。 此次更改基本上会将之前的全局结构

2022-06-24

KaOS Linux 版本由 Linux 5.17 内核系列驱动,该内核现在在 kernel.org 网站上被标记为 EOL(End-of-Life),这意味着它将不再接受维护更新。 其他更新内容包括: GNU C Library 2.35 GCC 11.3.0 GNU Binutils 2.38 systemd 250.7 DBus 1.14.0 Nettle 3

2023-11-21

Greg Kroah-Hartman 已经宣布 Linux Kernel 6.6 版本为长期支持 (LTS) 版本;支持期限到 2026 年 12 月。 Linux Kernel 6.6 于 10 月 29 日正式发布,是一次包含了新功能、硬件支持、安全增强和性能改进的重大更新。具体包括有:引入了 EEVDF sched

2022-09-16

p;Linux Plumbers 大会上分享了他们如何使用 Linux 内核的 kernel live-patching (KLP) 基础设施。 据介绍,Meta 除了使用内核自带的 KLP,还选择了 Red Hat 的 Kpatch 方案。他们通过 Kpatch 为“数百万台 Linux 服务器”的内核进行热补丁更

2023-11-24

为Zstd格式等方面都是有益的。 详情查看 https://lore.kernel.org/lkml/

2023-05-11

,这个版本终于离开了  Linux 5.15 ,转由 Linux kernel 6.1 系列提供支持。 这个版本的主要软件更新: Linux kernel 6.1 –  带有签名的内核模块 musl libc 1.2.4 – 在 DNS 解析器中使用 TCP 回退 Pyth

2023-05-15

有可选参数的调用。 Integer#!= , String#!= , Kernel#block_given? , Kernel#is_a? , Kernel#instance_of? , Module#=== 特别优化。 编译代码的元数据使用更少的内存 改进了 ARM64 上的代码生成 可选择以暂停

2023-07-21

我们的项目 WSL-libre-linux-kernel 已经发布了 6.1.39 版本。这是一个为 Windows Subsystem for Linux (WSL) 定制的自由 Linux 内核,旨在提供更高的性能、安全性和兼容性。我们的项目基于 Linux-libre 项目,删除了所有非自由的软件和驱动,保

2023-07-20

自由。  !!!     我们的项目 WSL-libre-linux-kernel 已经发布了 6.4.3 版本。 这是一个为 Windows Subsystem for Linux (WSL) 定制的自由 Linux 内核,旨在提供更高的性能、安全性和兼容性。我们的项目基于 Linux-libre 项目,删除

2022-12-13

  近日,openKylin共建伙伴兆芯正式加入社区 kernel SIG,并负责维护openKylin内核兆芯分支的相关工作,目前已完成了第一批兆芯内核patch的合并工作,使得openKylin内核对于兆芯平台已经具有了比较完善的支持。 后续,兆芯将