Linux getrandom() 获得 8450% 性能提升

系统 Linux
虽然在 Linux 5.17 中有了速度上的大幅提升,但 Jason Donenfeld 对此并没满足。因此在 Linux 5.18 中他对随机代码作出了更多的改进。

Jason Donenfeld 是 WireGuard 的主要开发者,同时他也是 Linux 内核随机数相关代码的维护者,近日在他的领导下,Linux 内核的随机数生成器代码有了巨大幅度的改进。

在之前的 Linux 5.17 中,Jason Donenfeld 就在随机代码用 BLAKE2s 代替了 SHA1,由于 BLAKE2s 自带的特性,前者通常比后者更快更安全。经过测试,通过这个简单的转换就能获得 131% 左右的速度提升。

虽然在 Linux 5.17 中有了速度上的大幅提升,但 Jason Donenfeld 对此并没满足。因此在 Linux 5.18 中他对随机代码作出了更多的改进。

通过查看 Linux 的 random.git 仓库的日志能够看出(上图),开发者 Jason Donenfeld 在最近两天时间里进行了大量的代码提交。这些提交内容都将在 3 月下旬 Linux 5.18 的合并窗口启动时引入内核。

在邮件中特别强调到,通过使用正在开发的最新代码,用于获取随机字节的 getrandom() 调用能够获得更好的性能。在配备英特尔 Xeon E5-2697 v2 @ 2.70GHz CPU 和 112G 内存的设备上进行 stress-ng getrandom() 基准测试后,更是获得了 8450% 的性能提升。

此次更改基本上会将之前的全局结构(实际上是 per-numa 节点结构)更改为 per-cpu 结构,这意味着快速路径上的许多锁都会消失。因此,当在具备多核的 CPU 上同时尝试 getrandom() 时,毫无疑问性能会出现提升。只不过没想到在测试中能带来 8450% 的提升。

除此之外,当从 per-numa 更改为 per-cpu 后,也将不再需要被推迟到工作队列上线后才能进行。也正如我之前所说,此次改进将会为高核心数的电脑和服务器带来巨大收益。

本文转自OSCHINA

本文标题:Linux getrandom() 获得 8450% 性能提升

本文地址:https://www.oschina.net/news/183698/linux-getrandom

责任编辑:未丽燕 来源: 开源中国
相关推荐

2019-07-10 16:45:49

LinuxLinux游戏游戏性能

2023-04-27 06:16:41

Windows 11Linux

2023-05-25 20:06:17

Linux游戏性能

2015-07-28 09:19:10

Linux内核

2021-09-27 09:52:41

FacebookBOLTLinux

2016-09-26 13:50:52

Linux系统性能

2011-03-18 15:22:25

Linux内核2.6.38

2009-04-27 16:27:49

LinuxKernel 2.6.Intel

2016-09-29 15:51:27

LinuxNtop性能

2021-10-25 10:23:49

Webpack 前端Tree shakin

2020-03-18 10:04:34

存储机器学习服务器

2013-05-22 09:38:03

GoGo语言Go性能

2023-04-10 09:15:25

Vite 4.3SWC 插件

2011-01-06 09:57:31

Linux Kerne

2021-09-27 08:16:38

Webpack 前端Cache

2020-10-09 17:43:25

计算机CPU技术

2022-12-28 15:10:39

LinuxNginx服务器

2021-12-02 07:02:16

API性能设计

2010-09-08 13:35:59

2010-07-26 12:14:52

Perl性能
点赞
收藏

51CTO技术栈公众号