sinx003
V2EX  ›  Windows

请教一个 winodows 下 cpu 核心配分问题

  •  
  •   sinx003 · May 16, 2024 · 3396 views
    This topic created in 910 days ago, the information mentioned may be changed or developed.

    windos10 环境下,有一颗 10 核心 20 线程的 cpu.为什么每次启动不同任务的时候,核心 1 总是负载很高?
    注意哈,我的意思是我启动不同的任务的时候,他总是搞不犹豫的选择核心 1!
    正常来说,核心 1 上已经有负载了,不应该到负载低的核心上吗?
    再不济,你随机选一个核心也行啊?为什么非得选择核心 1 呢?

    Supplement 1  ·  May 16, 2024
    有什么那么一个程序,可以让我每次启动的时候,随机分配一个核心跑?
    24 replies  •  2024-05-16 18:37:23 +08:00
    HojiOShi
    HojiOShi
    May 16, 2024
    1
    又是一个英特尔大小核受害者。
    wheat0r
    wheat0r
    May 16, 2024
    2
    毕竟 there is always a core 0
    7lQM1uTy635LOmbu
    7lQM1uTy635LOmbu
    May 16, 2024
    3
    @HojiOShi 10 核 20 线程没有大小核的吧
    tool2dx
    tool2dx
    May 16, 2024
    4
    大部分程序都是单双核跑的,你是怕把核心一累坏了?这倒是一个比较新的观点。

    确实应该随机分配的,只让核心一干活,也太不公平了。忙得忙死,闲得闲死。
    HojiOShi
    HojiOShi
    May 16, 2024
    5
    @nevadax #3 看走眼了
    sinx003
    sinx003
    OP
    May 16, 2024
    6
    @HojiOShi 志强 5e
    justplaymore
    justplaymore
    May 16, 2024
    7
    Process Lasso
    geekvcn
    geekvcn
    May 16, 2024 via Android
    8
    Windows 默认 DPC ,ISR 都跑在核心 0 上
    augustheart
    augustheart
    May 16, 2024
    9
    你的核心 1 指的是 cpu0 ?
    有没有可能,你启动任务的时候,操作系统本身还得干活呢?
    geekvcn
    geekvcn
    May 16, 2024 via Android
    10
    如果你启动的程序不是启动器之类的还要启动主要程序,直接写一个 bat 批处理就能随机分配核心,所需指令 start /affinity 。bat 伪随机数怎么生成直接网上 copy 代码
    opengps
    opengps
    May 16, 2024
    11
    有可能你开的程序只支持单核,比如老版本的 redis memcached 之类,也可能你写的程序压根不支持多程序导致集中在几个核心上
    jim9606
    jim9606
    May 16, 2024 via Android
    12
    如果单个核没填满时都堆一个核心上,好像没什么问题,特别是如果这个核是被 CPPC 报告为优质核的情况。
    sinx003
    sinx003
    OP
    May 16, 2024
    13
    @augustheart 负载高的是核心 1,cpu2.
    sinx003
    sinx003
    OP
    May 16, 2024
    14
    @justplaymore 这个听起来不错,回去试试
    sinx003
    sinx003
    OP
    May 16, 2024
    15
    @geekvcn 能详细解释`如果你启动的程序不是启动器之类的还要启动主要程序` 吗?我没有在 win 下面有太多的开发.假设我想启动 edge 这种线程较多的程序,他能不能实现把负载放在除核心 1 外的地方?
    sinx003
    sinx003
    OP
    May 16, 2024
    16
    @jim9606 cppc 是针对 amd 平台的吗?首次接触,发现 amd 平台的资料?
    mohumohu
    mohumohu
    May 16, 2024
    17
    我只是想单纯吐槽标题的 windows 多了个 o
    Rumble66
    Rumble66
    May 16, 2024
    18
    Process Lasso 是软件级别的调度,实际上并不好用还要收费 windows 关于 cpu 的配置项非常多,但大多数都是隐藏的,比如通过配置可以使 win10 也支持大小核调度(实质就是任务优先级,长短任务分配的核心)
    R4rvZ6agNVWr56V0
    R4rvZ6agNVWr56V0
    May 16, 2024
    19
    为啥纠结这种问题。
    Windows 使用复杂的算法来决定哪个进程或线程应该在哪个核心上运行,
    某些应用程序可能被设计为更倾向于使用特定的可用的核心,而不是随机选择。
    R4rvZ6agNVWr56V0
    R4rvZ6agNVWr56V0
    May 16, 2024
    20
    一般来讲,使用 Windows API 亲和性函数 SetProcessAffinityMask 来将当前进程绑定到选定的核心上
    wy315700
    wy315700
    May 16, 2024
    21
    当年芯片的调度规则是会指定一个体质最好的核心,在跑单核应用的时候尽可能把任务分配到这个核心上并且尽可能提高这个核心的频率
    R4rvZ6agNVWr56V0
    R4rvZ6agNVWr56V0
    May 16, 2024
    22
    rojer12
    rojer12
    May 16, 2024
    23
    一核有难,9 核围观,基操了
    momo1999
    momo1999
    May 16, 2024
    24
    winodows 11 好像会均匀调度,不会让一个核心太累。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4609 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 01:18 · PVG 09:18 · LAX 17:18 · JFK 20:18
    ♥ Do have faith in what you're doing.