热烈祝贺

对于在Linux系统上游戏的玩家而言,如果你的硬件配置已显陈旧,那么近期内核社区的一项工作绝对值得关注。Linux内核开发者Peter Zijlstra发布了一个名为“sched: Flatten the pick”的补丁系列第二版,其目标直指Linux调度器在处理cgroup(控制组)调度时存在的效率缺陷,而这可能为老旧硬件带来显著的游戏性能提升。
Peter Zijlstra将这个问题形容为“一个令人头疼的难题”。他发现,问题的根源在于一个计算公式,该公式会将一个任务组的总权重分散到系统的每一个CPU核心上。这意味着,在拥有64个核心的机器上,一个cgroup在每个CPU上能获得的优先级已经降至大约“nice 19”级别;而在当今服务器中常见的256核心环境下,这种优先级空间被进一步压缩,几乎可以忽略不计。
他将问题分解为两个部分:
nice -20(进程的最高优先级),导致计算逻辑失效。为了验证补丁的实际效果,Peter Zijlstra进行了一项实验。他使用了一台配置为Intel Core i7-2600K处理器和AMD Radeon RX 580显卡的旧电脑,通过Lutris和GE-Proton10-34运行GOG平台的游戏《Shadows: Awakening》。
为了模拟高负载环境,他在游戏运行时额外启动了8个“spinner processes”(一种持续占用CPU的进程),每个进程对应一个CPU线程。在这种压力下,游戏体验从“可玩”迅速恶化至“几乎无法游玩”。
随后,他重启了游戏,并通过chrt命令将调度器的时间片长度缩短为默认值的十分之一,同时使用MangoHud录制了两轮游戏的数据进行对比。结果令人印象深刻:
| 指标 | 默认时间片 | 缩短时间片 |
|---|---|---|
| 最低帧率 (FPS) | 3.8 | 20.6 |
| 平均帧率 (FPS) | 48.0 | 57.2 |
| 最高帧率 (FPS) | 87.4 | 80.3 |
| 最小帧时间 (ms) | 9.4 | 8.4 |
| 平均帧时间 (ms) | 34.5 | 19.5 |
| 最大帧时间 (ms) | 107.4 | 37.2 |
数据显示,应用补丁并缩短调度时间片后,游戏的最低帧率从3.8帧/秒跃升至20.6帧/秒,平均帧时间也从34.5毫秒大幅降低至19.5毫秒,整体流畅度得到了质的改善。
对于广大Linux游戏玩家,尤其是使用老旧硬件的用户来说,这类修复无疑是大有裨益的。Peter的测试环境虽然老旧,但他所模拟的高负载场景——例如同时运行Discord、打开多个标签页的浏览器以及后台的系统更新——与用户的日常使用习惯非常相似,这些程序同样会像那些“spinner processes”一样争夺CPU资源。
更重要的是,cgroup调度的问题并不仅限于老旧硬件。核心数量的增加反而会加剧权重碎片化的影响。因此,一旦该补丁被采纳,即使是拥有16核或更多核心的现代PC,也可能从中获益。
需要提醒的是,该补丁目前尚未被纳入Linux主线内核。它仍需经过相关内核维护者的严格审核,并很可能在最终合并前经历数次修订。因此,短期内普通用户还无法直接体验到这一改进。
关注微信号:智享开源 ,可及时获取信息
原文链接:https://feed.itsfoss.com/link/24361/17339878/linux-scheduler-patch-gaming-old-hardware
| 投稿作者 | 作者网站 |
|---|---|
你必须 登录 才能发表评论.
| 微信捐赠 | 支付宝捐赠 |
|---|---|
![]() |
![]() |


热烈祝贺
imcn成功拥抱人工智能。
Zorin OS 很久没有使用,开箱即用…
elementaryOS 5.0中文版安…
写个桌面启动器创建工具吧
还没有任何评论,你来说两句吧!