V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
songray
V2EX  ›  程序员

现在 Linux 对 Intel 大小核的调度怎么样?

  •  
  •   songray ·
    Ray-D-Song · 74 天前 · 4973 次点击
    这是一个创建于 74 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rt ,最近想升级一下日用的代码机,在纠结是 12900 还是 7950x 。

    Intel 平台不仅板子更便宜,还可以继续使用现有的 D4 内存,唯一的担心就是 Linux Kernel 对大小核的支持。

    21 条回复    2025-05-04 19:21:31 +08:00
    billlee
        1
    billlee  
       74 天前   ❤️ 1
    内核调度器是优先选择性能最强的核心,另外现在有 sched-ext 对 ebpf 的调度接口,有 [不同的调度器]( https://github.com/sched-ext/scx/tree/main/scheds) 可以选择和配置。

    不过我是 7950x 用户,「优先选择性能最强的核心」在 intel 大小核上实现的效果怎么样,有没有 bug, 我就不知道了
    molika
        2
    molika  
       74 天前   ❤️ 1
    12700k 装了 manjaro 直接看不到小核了~
    luojiyin87
        3
    luojiyin87  
       74 天前   ❤️ 1
    目前对大小核支持不太好
    leonme
        4
    leonme  
       74 天前   ❤️ 1
    建议全大核 + ddr4
    songray
        5
    songray  
    OP
       74 天前 via iPhone
    @leonme 全大核 d4 是 5950x ?
    wniming
        6
    wniming  
       74 天前 via Android   ❤️ 1
    @songray 可以选 12700 ,关闭 4 个小核
    geekvcn
        7
    geekvcn  
       74 天前   ❤️ 1
    Linux 绑定核心方便,有需要的程序和服务直接启动脚本里面加核心绑定吧,多省事
    geekvcn
        8
    geekvcn  
       74 天前   ❤️ 1
    用容器启动服务和软件也可以,容器能限制使用核心
    Pteromyini
        9
    Pteromyini  
       74 天前   ❤️ 1
    目前哪怕和 intel 联调的 win 的大小核调度都还是灾难
    kokutou
        10
    kokutou  
       74 天前 via Android   ❤️ 1
    调不好的,扔给贩子吧,
    直接买 9700x 9900x 9950x
    kuanat
        11
    kuanat  
       74 天前   ❤️ 8
    TLDR:正常用几乎不会有负面影响,暂时也不用指望有太智能的调度。建议使用 6.12 之后的内核,如果是最新的 cpu 平台建议 6.14 。



    我简单凭印象解释一下关于 linux 调度的逻辑,这个是比较复杂的,可能有说的不对的地方,需要详细了解建议根据关键词去查询。

    如果把任务调度理解成数学问题,逻辑一定是从完全公平( CFS )开始,之后一般化到根据需要加权获得有偏向的调度,比如 EAS/CAS 等等。具体实现方面,除了加权逻辑之外,还需要运行时参数,比如程序运行了多久,消耗多少能量,想好多少算力,这又是一个约束优化问题。

    目前所有的调度都是 CFS 完全公平调度的扩展实现。调度过程是:先估算每个任务短期 cpu 占用(这个机制叫 PELT ),然后决定下一个调度任务(这个算法叫 EEVDF )。推荐 6.12 内核就是因为 6.12 完成了重大改动的合并。

    与异构相关调度加权有 Energy Aware Scheduling 和 Capacity Aware Scheduling 。前者 EAS 是 arm 大小核诞生之后就有了,逐渐完善至今,多用于低功耗设备。后者相当于是前者的数学拓展,优化的目标不再是单一能耗比,是未来异构调度的核心。

    在 CAS 逻辑中,CPU 硬件向系统汇报核心的拓扑、相对容量/性能以及负载、温度和频率这些运行时状态,然后 CAS 算法根据目标:比如性能、能耗、公平性等等决定如何执行核心迁移。

    可以简单认为,Intel/Amd 目前的补丁都能正确告诉内核硬件拓扑,Linux 也能正确理解基础的高性能、平衡和长续航情况下的核心使用优先级,但 CAS 算法以及基础参数都非常 naive 。

    一点点使用建议:

    异构核心上的(自动最优)任务调度是个很难的事情,这里有两条路可以走,一个是苹果的手动黑白名单,比如将商店进程放到能效核心上,另一个就是全自动,也就是 CAS 的做法。

    所以如果你是自己写程序,那完全可以绕开自动逻辑,手动绑定核心。

    如果你是要改变 CAS 的优化方向,不是很推荐也没有直接控制的手段,通常是建议保持 SCHED_NORMAL 。

    另外 scheduler 和 governor 是不同的,这里只讨论调度器。
    wxf666
        12
    wxf666  
       74 天前
    那种 2299 元 7945HX 的 MoDT 板 U 能用吗?

    CPU-Monkey 说,多核性能比 i9-12900K 强 15%,但比 7950X 差 17%?(应该是最大功耗限制 120W 所致)



    songray
        13
    songray  
    OP
       74 天前 via iPhone
    @wxf666 这个我不太推荐,主要是保修最长的铭凡也只有 3 年,要是 boom 就是主板和 u 一起无。
    而且单看板子的料就是比较垃的 a620 ,和 2600 的 7950x+500 块的丐 a620 性价比拉不开差距。
    还有一点就是内存是笔记本那种,后续升级也不方便。
    chocotan
        14
    chocotan  
       73 天前
    我正好是 12900 ,日常码代码无感
    hanyuwei70
        15
    hanyuwei70  
       73 天前
    日用环境我觉得没多大问题,但是鉴于目前调度框架,我不能说完全没问题。
    大小核调度其实是需要用户输入的,在调度框架不解决这个问题之前我不认为能有很好的解决。
    roygong
        16
    roygong  
       73 天前 via iPhone
    我是 i7-12700 ,手动编译安装 6.1 往上的内核,使用基本无感
    Syiize
        17
    Syiize  
       73 天前
    我目前是 13 代 i5 ,没记错的话应该也是大小核。日常使用 Arch Linux ,内核版本保持最新的,没发现有什么 bug 之类的
    srwle
        18
    srwle  
       73 天前
    还是 amd 吧哈哈,不用折腾了
    MrKrabs
        19
    MrKrabs  
       73 天前
    用 x86 又不在乎电费还管他呢
    ljn917
        20
    ljn917  
       72 天前 via Android
    14700K kernel 6.12 没有明显问题,目测进程优先运行在大核上,大核占满再用小核
    wxf666
        21
    wxf666  
       72 天前
    @songray #13 比 7950x 板 U 便宜了 800 块呢。。而且满载 128W ,散热要求低,这里也能省些钱出来。。实在担心质量的话,用三年,之后应该能半价卖出?

    (唉,三年前 2000 元 6900HX 迷你主机,现在二手都还要 1400 这样呢。。不知 7840HS / 8845HS 系列啥时候能猛猛降价,2899 元 Mac mini M4 的压力都还是太小了。。

    如果之后一直用这种 MoDT 板,买笔记本内存也没啥吧。。700 元 48G 英睿达 ddr5 5600 ,应该够用吧。。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2986 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:46 · PVG 20:46 · LAX 05:46 · JFK 08:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.