0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux内核代码修改将为性能测试获8450%提升

马哥Linux运维 来源:OSC开源社区 作者:OSC开源社区 2022-03-09 14:16 次阅读

Jason Donenfeld 是 WireGuard 的主要开发者,同时他也是 Linux 内核随机数相关代码的维护者,近日在他的领导下,Linux 内核的随机数生成器代码有了巨大幅度的改进。 在之前的 Linux 5.17 中,Jason Donenfeld 就在随机代码用 BLAKE2s 代替了 SHA1,由于 BLAKE2s 自带的特性,前者通常比后者更快更安全。经过测试,通过这个简单的转换就能获得 131% 左右的速度提升。 虽然在 Linux 5.17 中有了速度上的大幅提升,但 Jason Donenfeld 对此并没满足。因此在 Linux 5.18 中他对随机代码作出了更多的改进。

cd964870-9f64-11ec-952b-dac502259ad0.png

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

cdb60ee4-9f64-11ec-952b-dac502259ad0.png

在邮件中特别强调到,通过使用正在开发的最新代码,用于获取随机字节的 getrandom() 调用能够获得更好的性能。在配备英特尔 Xeon E5-2697 v2 @ 2.70GHz CPU 和 112G 内存的设备上进行 stress-ng getrandom() 基准测试后,更是获得了 8450% 的性能提升。 此次更改基本上会将之前的全局结构(实际上是 per-numa 节点结构)更改为 per-cpu 结构,这意味着快速路径上的许多锁都会消失。因此,当在具备多核的 CPU 上同时尝试 getrandom() 时,毫无疑问性能会出现提升。只不过没想到在测试中能带来 8450% 的提升。 除此之外,当从 per-numa 更改为 per-cpu 后,也将不再需要被推迟到工作队列上线后才能进行。也正如我之前所说,此次改进将会为高核心数的电脑和服务器带来巨大收益。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1372

    浏览量

    40282
  • Linux
    +关注

    关注

    87

    文章

    11296

    浏览量

    209358

原文标题:性能提升8450%,Linux内核函数获大幅改进

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介

    学到本章节,大家应该对Linux操作系统都有了一定的了解,但可能还不知道我们拿到手的内核源码都经历了什么。linux有一个庞大的开源社区,每个人都可以向开源社区提交代码。由于
    发表于 12-13 09:03

    嵌入式工程师都在找的【Linux内核调试技术】建议收藏!

    内核调试技术,并通过一个案例分析来帮你加深理解。 常见的Linux内核调试技术 printk()调试技术 printk()是调试内核代码
    发表于 11-28 15:37

    linux驱动程序如何加载进内核

    ,需要了解Linux内核的基本概念和API。以下是一些关键概念: 1.1 内核模块:Linux内核模块是一种动态加载和卸载的
    的头像 发表于 08-30 15:02 444次阅读

    linux驱动程序的编译方法是什么

    的源代码中,并随内核一起编译。这种方法适用于驱动程序已经非常稳定,且不打算频繁修改的情况。具体步骤如下: 下载并安装Linux内核
    的头像 发表于 08-30 14:46 545次阅读

    延时仅33us,Linux-RT实时性能测试分享—基于瑞芯微RK3562J国产平台

    。Target#cat /proc/cmdline 图 4 进入评估板文件系统,执行如下命令,修改内核printk日志等级,避免内核打印信息影响实时测试。Target#echo 1 &
    发表于 08-22 13:51

    Linux内核测试技术

    内核测试技术是实现这一目标的关键手段。本文将详细介绍 Linux 内核测试的各种技术,包括单元测试
    的头像 发表于 08-13 13:42 484次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b><b class='flag-5'>测试</b>技术

    基于望实时Linux的高性能运动控制器适配

    国科环宇依托深厚的技术积累与实战经验,成功推出了基于望实时Linux的高性能运动控制器适配方案。该方案不仅保留了Linux的通用性与兼容性,还通过自研的调度算法、网络优化技术及先进的
    的头像 发表于 08-08 13:51 239次阅读
    基于望<b class='flag-5'>获</b>实时<b class='flag-5'>Linux</b>的高<b class='flag-5'>性能</b>运动控制器适配

    Linux内核中的页面分配机制

    Linux内核中是如何分配出页面的,如果我们站在CPU的角度去看这个问题,CPU能分配出来的页面是以物理页面为单位的。也就是我们计算机中常讲的分页机制。本文就看下Linux内核是如何管
    的头像 发表于 08-07 15:51 280次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>中的页面分配机制

    欢创播报 华为宣布鸿蒙内核已超越Linux内核

    自诞生以来的最大一次升级换代。HarmonyOS NEXT不依赖传统的Unix内核Linux内核,而是依靠自主的鸿蒙内核。这就意味着,鸿蒙操作系统最终将去掉
    的头像 发表于 06-27 11:30 831次阅读

    基于全志T507-H的Linux-RT实时性测试案例分享

    的POSIX API等),实现产品快速上市的期望。 Linux-RT实时性测试(Cyclictest工具) Cyclictest常用于实时系统的基准测试,是评估实时系统相对性能的最常用
    发表于 06-03 09:50

    如何修改Kernel Affinity提升openplc性能

    如何修改Kernel Affinity提升openplc性能
    发表于 05-22 06:36

    使用 PREEMPT_RT 在 Ubuntu 中构建实时 Linux 内核

    盟通技术干货构建实时Linux内核简介盟通技术干货Motrotech如果需要在Linux中实现实时计算性能,进而有效地将Linux转变为RT
    的头像 发表于 04-12 08:36 2431次阅读
    使用 PREEMPT_RT 在 Ubuntu 中构建实时 <b class='flag-5'>Linux</b> <b class='flag-5'>内核</b>

    rk3399移植Linux内核

    RK3399是一款由中国厂商瑞芯微推出的高性能处理器芯片,被广泛用于嵌入式系统开发。在进行应用程序开发之前,我们需要将Linux内核移植到RK3399上,以支持硬件的驱动和功能。本文将详细介绍如何将
    的头像 发表于 01-08 09:56 1131次阅读

    兆芯正引入Linux首选内核调度技术,优化性能

    近期,兆芯工程团队亦在致力于将首选内核调度技术引进Linux系统中。他们试图通过提议的Linux内核补丁,利用已有的ACPI功能来辨别每个核心的特性。这项补丁将在ACPI CPUFre
    的头像 发表于 12-29 14:30 566次阅读
    兆芯正引入<b class='flag-5'>Linux</b>首选<b class='flag-5'>内核</b>调度技术,优化<b class='flag-5'>性能</b>

    TQT507开发板如何修改和保存内核配置

    本文档介绍如何在开发时修改和保存内核配置,适用于开发板TQT507。 1.修改内核配置 编译时系统会先检测当前内核源码目录下是否存在.con
    的头像 发表于 12-28 14:13 442次阅读
    TQT507开发板如何<b class='flag-5'>修改</b>和保存<b class='flag-5'>内核</b>配置