写点什么

Linus 大佬展现恐怖业务实力:只改动 21 行代码,Linux 性能狂升 2.6%

  • 2024-11-12
    北京
  • 本文字数:1759 字

    阅读完需:约 6 分钟

大小:819.11K时长:04:39
Linus大佬展现恐怖业务实力:只改动21行代码,Linux性能狂升2.6%

短短 21 行代码,再次证明这位开源大佬恐怖的业务实力。

 

开源大师 Linus Torvalds 提交的一段简短代码变更,显著提高了 Linux 系统的多线程性能。

 

此番提交的代码拥有一个朗朗上口的名号 x86/uaccess:避免在 64 位 copy_from_user()中使用 barrier_nospec()。此补丁是一项安全调整,旨在应对 2018 年曝出的 Meltdown 和 Spectre 等安全漏洞。遗憾的是,这些问题不仅没有消失,而且根据外媒上个月的相关报道,此类攻击活动仍然存在。

 

Meltdown 和 Spectre 是近年来在 Intel、AMD、Apple 和 ARM 处理器中发现的严重安全漏洞。这些漏洞源于芯片的设计缺陷,几乎所有 PC 和智能手机用户都受其影响。特别是由于 Intel 和 IBM POWER 处理器在市场中的广泛应用,因此这一硬件缺陷对信息安全的影响范围极大。

 

另外该缺陷的危险程度之高(无需特权即可访问敏感资料所在的存储器空间),曾一度令信息安全人员及机构怀疑缺陷的真实性。

 

除更换 PC 处理器以外,消除漏洞的唯一方法是修补操作系统,包括 Linux 系、Android、OS X/macOS、Windows 等等都有相应的修复程序(像是 Linux 的内核页表隔离技术),但是软件规避将导致处理器性能的显著下降。

 

Netflix 工程师 Brendan Gregg 曾表示,Linux 针对 Meltdown 的缓解措施 KPTI 导致了“我见过的最大的内核性能倒退”,尤其是在高系统调用率、上下文切换率、页面错误率和工作集大小的情况下。缓解 Meltdown 的 KPTI 补丁可能会带来巨大的开销,从 1% 到 800% 不等。多年来,社区也一直在探索减少 Meltdown 带来的开销的办法。

 

此次 Linus 的补丁是对红帽开发人员 Josh Poimboeuf 此前提交补丁的重写,大佬对其进行了修改以提升性能表现。他在提交中写道,“内核测试机器人报告称,per_thread_ops 基准测试性能提高了 2.6%。”

 

从本质上讲,Torvalds 找到了一种在不影响性能的情况下实现相同安全结果的方法。这可能会对需要高性能和强大安全性的 Linux 系统(例如 Web 服务器)产生影响。很少有人对 Linux 和 x86 CPU 架构有如此深入的了解,以至于他们可以在这个层面上获得性能提升。

 

小改动大幅提升 Linux 性能

 

总之,这个优化就是一个典型的“小优化,大收益”的例子。

 


- 即使在实际环境中只有 2.6% 的性能提升,也能节省数亿美元的电力和 HVAC 成本。

- 这位朋友一个人就把气候变化延缓了几天。

 


截图来源:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0fc810ae3ae110f9e2fcccce80fc8c8d62f97907

 

Linus 的版本不再使用 barrier_nospec() API,新补丁可防止某些机器码发生推测执行。所谓推测执行是现代 CPU 中的一项功能,其使用分支预测来尝试预判未来可能需要运行哪些程序代码,以便提前运行并缓存其结果。如果预测正确则可以节约时间;如果预测不正确,则结果将被丢弃。问题是,这会带来一种特殊形式的安全问题,科学家们则一直在为此寻求解决办法。

 

相反,如果因地址无效而不允许调用 copy_from_user(),则该补丁会使用指针掩码返回内容为全 1 的地址。

 

防御此类攻击显然是种不得已而为之的手段。作为 Web 服务器等应用场景下的主要操作系统,Linux 必须锁定此类机器以抵御任何可能出现的攻击,甚至不惜以牺牲性能增强功能为代价。这虽然能让服务器更安全,但也使其运行速度更慢。Linus 则向来反对这种用性能换安全的“拙劣”方案。

 

(在不接受入站连接的本地独立台式机或者笔记本电脑上,大家可以关闭这些功能,在相对安全的环境下获得更好的性能——但前提是各位要清楚自己在做什么,并接受这种发生概率不大、但却客观存在的风险。)

 

虽然这次解决的不算什么大问题,但仍然解释了为什么这位 Linux 内核掌门人有资格每年从 Linux 基金会手中赚取过百万美元。确实很少有人拥有他这样的技术和知识水平,特别是在 x86 架构领域。而且拥有同等水平的顶尖精英也多数在为各大芯片开发巨头服务。他们签署了保密协议,所以无权介入此事。也正因为如此,在加入 Linux 基金会之前,Linus 还曾经收到过芯片供应商 Transmeta 抛出的橄榄枝。他为该公司提供了构建 Crusoe VLIW 芯片所必需的底层专业知识,使得该款芯片成功获得了对 x86-32 代码的模拟能力。

 

参考链接:

https://www.theregister.com/2024/11/06/torvalds_patch_linux_performance/

https://www.zdnet.com/article/linux-meltdown-patch-up-to-800-percent-cpu-overhead-netflix-tests-show/

2024-11-12 10:463355

评论

发布
暂无评论
发现更多内容

AccessLog| 一款开源的日志分析系统

ClkLog

数据分析 日志分析 埋点 开源软件

喜报!望繁信科技CEO索强与CTO李进峰双双荣获2024上海软件企业技能人才奖

望繁信科技

人工智能 #大数据 流程智能 #流程挖掘 上海望繁信科技

Prometheus Pushgateway 协议上报观测云最佳实践

观测云

监控

中石化中海燃供总会计师刘汉坤:一场数智革命,对内打破部门墙,对外抢占先机

用友BIP

从消息流平台Serverless之路,看Serverless标准演进

Serverless 华为云

CBR云备份与恢复管控简介

天翼云开发者社区

云计算 云服务 云备份

GraalVM 静态编译下 OTel Java Agent 的自动增强方案与实现

阿里巴巴云原生

阿里云 云原生 可观测

活动预告|8月3日 Streaming Lakehouse Meetup · Online 与你相约!

Apache Flink

StarRocks 实时湖仓 paimon

领先实践| 能源央企构建世界一流司库管理体系

用友BIP

GPUStack正式发布: 为大模型而生的开源GPU集群管理器

SEAL安全

AI 大模型 AIGC LLM GenAI

“用友BIP成就数智企业”入选新质生产力案例库

用友BIP

店铺商品搜索API返回值中的商品标题、图片与价格解析

技术冰糖葫芦

API Explorer API 编排 api 货币化 API 文档

AI项目验收!用友助力鑫阳钢铁进入智能判钢新时代

用友BIP

喜报!钛铂数据 TapDB 通过中国信通院文档数据库产品测试

tapdata

国产数据库 TapDB 国产分布式文档数据库 钛铂分布式文档数据库 中国信通院测试

ceph数据重构原理

天翼云开发者社区

分布式系统 存储 硬盘故障

观测云与传统监控:差距究竟有多大?

观测云

监控

gin框架上手实践

FunTester

精益管理| 河南钢铁集团:以盈利型采购生态应对复杂的市场挑战

用友BIP

职场<火焰杯>测试开发大赛决赛成绩及获奖名单公布!

霍格沃兹测试开发学社

GPUStack正式发布: 为大模型而生的开源GPU集群管理器

GPUStack

AI 大模型 AIGC LLM GenAI

Linus大佬展现恐怖业务实力:只改动21行代码,Linux性能狂升2.6%_开源_核子可乐_InfoQ精选文章