欢迎光临
我们一直在努力

系统信息工具学习笔记(15.11):Coreinfo——看清 CPU、内核与 NUMA 的“地图”

avatar

🔥
个人主页:
杨利杰YJlio

❄️
个人专栏:
《Sysinternals实战教程》
《Windows PowerShell 实战》
《WINDOWS教程》
《IOS教程》

《微信助手》
《锤子助手》
《Python》
《Kali Linux》

《那些年未解决的Windows疑难杂症》
🌟
让复杂的事情更简单,让重复的工作自动化

在这里插入图片描述


文章目录

  • 系统信息工具学习笔记(15.11):Coreinfo——看清 CPU、内核与 NUMA 的“地图”
    • 你能用 Coreinfo 干啥?
    • 一、Coreinfo 基本用法
    • 二、核心参数一览(按专题拆)
      • 1. 内核与 Windows 功能相关
      • 2. CPU / 处理器组拓扑
      • 3. 缓存层级与共享关系
      • 4. NUMA 拓扑与访问成本
    • 三、输出看不懂?给你一个“小抄模板”
      • 【CPU 拓扑】
      • 【缓存结构】
      • 【NUMA 拓扑】
      • 【内核 / 虚拟化功能】
    • 四、典型实战场景
      • 场景 1:SQL Server / Oracle 的 NUMA 调优
      • 场景 2:虚拟机规格选型 / 上云评估
      • 场景 3:解释“为什么同样 8 核,这台机器慢很多?”
    • 五、与其他 Sysinternals 工具配合
    • 六、个人使用建议(当成“体检报告生成器”)
    • 小结

系统信息工具学习笔记(15.11):Coreinfo——看清 CPU、内核与 NUMA 的“地图”

适用人群:需要做性能调优、NUMA 绑定、大型服务器规划、虚拟化选型的运维 / 架构 / 性能工程师


你能用 Coreinfo 干啥?

一句话:Coreinfo = 把“这台机器到底长啥样”用命令行画成一张结构图,包括:

  • CPU 拓扑:插槽(Socket)/ 物理核 / 逻辑核(超线程)
  • NUMA 拓扑:节点分布、访问成本
  • 内核功能:PAE、NX、SMEP、SMAP、虚拟化扩展等有没有
  • 缓存层级:L1/L2/L3 容量、共享关系
  • 处理器组(Processor Groups):多核心大机中每组多少逻辑 CPU(对进程亲和性很重要)

配合 RAMMap / Process Explorer / PsPing, 你就能从 “感觉慢”升级为“我知道慢在哪一层”。


一、Coreinfo 基本用法

下载 Sysinternals 套件后,在 管理员命令行 中进入目录,直接运行:

coreinfo

默认会输出一整页信息,包括:

  • CPU / Core / 逻辑处理器映射
  • 内核功能(NX、PAE、虚拟化特性等)
  • 缓存层级、处理器组、NUMA 结构……

一般会非常长,不建议裸看整页,而是用参数做“分专题视图”。

核心思路:先想“我要看什么”,再选对应参数。


二、核心参数一览(按专题拆)

书里是按功能分块介绍的,我们直接按“你想看什么”来记。

1. 内核与 Windows 功能相关

coreinfo -c # 显示内核(Core)/ 逻辑处理器映射
coreinfo -f # Kernel Features:内核功能支持情况

-f 输出会列出类似:

  • NX、PAE、LAHF/SAHF
  • SMEP / SMAP
  • Second Level Address Translation(SLAT)
  • Hypervisor present 等

怎么用?

  • 判断这台机子能不能跑某些虚拟化 / 安全特性
    • 如 Hyper-V、WSL2、某些安全产品要求的硬件特性
  • 判断是否支持硬件级防护(如 NX + SMEP)

简单说:coreinfo -f = “这台机器在安全 / 虚拟化方面天赋点了哪些技能”。


2. CPU / 处理器组拓扑

coreinfo -g # Processor Groups:处理器组信息
coreinfo -s # Sockets:插槽 / 物理 CPU 信息

适用于以下场景:

  • 物理大机(很多核心)中,了解每个 Processor Group 里有多少逻辑 CPU,方便你合理设置:
    • start /affinity
    • SQL Server / JVM / Redis 等的 CPU 亲和性
  • 看机器到底是 单路 / 双路 / 四路,尤其在虚拟化环境里,很多人完全搞不清宿主机结构。

当核心数 > 64 时,Windows 会拆成多个 Processor Group,这时 -g 的信息对亲和性设定就非常关键。


3. 缓存层级与共享关系

coreinfo -l # L1 / L2 / L3 缓存情况

你可以看到类似:

  • 每层缓存的大小、类型(Data / Instruction / Unified)
  • 哪些逻辑核共享同一片 L2 / L3

意义是什么?

  • 对高性能程序 / 中间件调优:
    • 把“互相打架”的线程放到共享合适缓存的核上
    • 或者反过来,把“互相干扰”的任务分到不同 L3
  • 识别云机的真实密度:
    • 某些云机号称很多 vCPU,但 L3 极小
    • 说明密度很高、邻居很多,性能预期就不要太乐观

-l 给你的是“缓存拓扑图”,用来解释那种:CPU 不算高,但延迟抖得厉害的场景。


4. NUMA 拓扑与访问成本

coreinfo -n # NUMA 节点信息
coreinfo -m # NUMA access cost:节点间访问成本矩阵

-n 会列出:

  • 节点数量
  • 每个节点上挂了哪些逻辑 CPU

-m 会给出一个 访问成本矩阵,类似:

From\\To Node 0 Node 1
Node 0 1.0 1.4
Node 1 1.4 1.0

大概意思是:

  • 本节点访问本节点内存成本 = 1.0
  • 跨节点访问成本 = 1.4(越高越慢)

使用场景:

  • 数据库 / 缓存 / 高并发服务做 NUMA 亲和性:
    • 进程 / 线程尽量绑定本地节点
  • 排查“CPU 占用不高,但 P99 延迟飘”的服务:
    • 跨 NUMA 到处跑,往往就是真凶之一

-n 告诉你“人怎么分组”,-m 告诉你“各组之间沟通有多费劲”。


三、输出看不懂?给你一个“小抄模板”

假设你跑了:

coreinfo -s -l -n -m -f

可以按照下面的结构做笔记(或写到运维文档里):

【CPU 拓扑】

  • 插槽(Socket):2
  • 每插槽物理核:16
  • 每物理核逻辑核:2(超线程开启)
  • 总逻辑 CPU:64

【缓存结构】

  • L1D:32KB / 核
  • L2:512KB / 核
  • L3:20MB / Socket,跨 16 核共享

【NUMA 拓扑】

  • 节点数:2
  • Node 0:CPU 0–31
  • Node 1:CPU 32–63
  • 访问成本矩阵:
    • 本地:1.0
    • 跨节点:1.4

【内核 / 虚拟化功能】

  • NX:支持
  • SLAT:支持
  • Hyper-V:支持硬件虚拟化(VMX/SVM)
  • SMEP / SMAP:支持

之后你再看这台机器的性能图,就不是“玄学排错”,而是对照这张“身体结构图”做推理。


四、典型实战场景

场景 1:SQL Server / Oracle 的 NUMA 调优

  • 用 coreinfo -n -m 确认 NUMA 节点布局:
    • 有几个节点、每个节点多少核、本地 vs 远程访问成本
  • 按节点划分实例或设置 CPU 亲和性:
    • 每个节点一个重型实例,或每节点一个主要 worker 组
  • 尽量让热点数据常驻本节点内存:
    • 搭配数据库的 NUMA 选项 / buffer pool 配置
  • 目标:让“计算 + 数据”尽量待在同一个 NUMA 节点里,不要动不动就跨节点。


    场景 2:虚拟机规格选型 / 上云评估

    • 在宿主机上跑 coreinfo 看真实:
      • 物理核 / 超线程情况
      • L3 大小
      • NUMA 拓扑
    • 对比云厂商的 vCPU 规格,看是否:
      • 超卖严重
      • L3 与核数相比过小(高密度)
    • 结合 -n -m 评估:
      • 虚机是否可能跨 NUMA
      • 多个虚机是否压在同一 L3 / 同一节点

    一句话:Coreinfo 帮你拆掉“营销包装”,看到真实硬件。


    场景 3:解释“为什么同样 8 核,这台机器慢很多?”

    常见对比:

    • 机器 A:单路 8 物理核,大 L3,单 NUMA
    • 机器 B:双路老 U 拼出的 8 vCPU,小 L3,多 NUMA,跨节点成本高

    两边都写“8 核”,体验完全不同。

    • Coreinfo 会告诉你:
      • Socket 数
      • L3 容量
      • NUMA 节点与访问成本

    你就可以很诚实地跟同事说:纸面都是 8 核,但“里面的骨骼结构”完全不一样。


    五、与其他 Sysinternals 工具配合

    • RAMMap:
      • 看“内存去哪儿了”,Coreinfo 看“CPU / NUMA 怎么长的”,
      • 两者联动排查:到底是内存布局问题,还是 CPU / NUMA 选型问题。
    • Process Explorer:
      • 看某进程落在哪些 CPU 上
      • 再结合 Coreinfo 的 CPU / NUMA 布局,调整亲和策略
    • PsExec:
      • 在远程机器上跑 Coreinfo 收集硬件信息
      • 用脚本批量汇总成“机房硬件拓扑登记表”

    Sysinternals 不是一个个工具“单刷”,而是要组合成排障和容量规划的“连招”。


    六、个人使用建议(当成“体检报告生成器”)

    你可以把 Coreinfo 当成服务器的“体检报告生成器”:

  • 对所有关键服务器(DB / 中间件 / 大型应用节点):
    • 跑一遍 coreinfo -s -l -n -m -f
    • 把结果归档到 CMDB / 文档库
  • 迁移 / 上云 / 换硬件 时:
    • 对比新旧 Coreinfo 输出
    • 避免“纸面核数升级,实际 NUMA / 缓存 / 虚拟化特性反而退步”的坑
  • 写性能调优文档时:
    • 不要只写 “CPU:8 核”,而要写:
      • NUMA 拓扑
      • 缓存结构
      • 虚拟化 / 安全特性
  • 这一页“Coreinfo 体检报告”,往往能解释掉 50% 的性能差异。


    小结

    Coreinfo 本质上不是“调优工具”,而是 把系统底层结构照亮的手电筒。

    • 你先看清楚这台机器的 骨骼(Socket / Core / NUMA)、
    • 再看清 肌肉(缓存结构)、
    • 再看清 神经系统(虚拟化 / 内核特性),

    后面的 RAMMap / PsPing / PerfMon 这些“听诊器”才会更好用。

    下一篇,继续看 WinObj / LoadOrder 这类“结构观察工具”,把整个 Windows 的“身体结构”完整拼起来,你就不再只是会用命令行,而是会读懂这台系统的“生理构造图”。

    赞(0)
    未经允许不得转载:171主机测评 » 系统信息工具学习笔记(15.11):Coreinfo——看清 CPU、内核与 NUMA 的“地图”
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址