🔥
个人主页:
杨利杰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 调优
- 有几个节点、每个节点多少核、本地 vs 远程访问成本
- 每个节点一个重型实例,或每节点一个主要 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 当成服务器的“体检报告生成器”:
- 跑一遍 coreinfo -s -l -n -m -f
- 把结果归档到 CMDB / 文档库
- 对比新旧 Coreinfo 输出
- 避免“纸面核数升级,实际 NUMA / 缓存 / 虚拟化特性反而退步”的坑
- 不要只写 “CPU:8 核”,而要写:
- NUMA 拓扑
- 缓存结构
- 虚拟化 / 安全特性
这一页“Coreinfo 体检报告”,往往能解释掉 50% 的性能差异。
小结
Coreinfo 本质上不是“调优工具”,而是 把系统底层结构照亮的手电筒。
- 你先看清楚这台机器的 骨骼(Socket / Core / NUMA)、
- 再看清 肌肉(缓存结构)、
- 再看清 神经系统(虚拟化 / 内核特性),
后面的 RAMMap / PsPing / PerfMon 这些“听诊器”才会更好用。
下一篇,继续看 WinObj / LoadOrder 这类“结构观察工具”,把整个 Windows 的“身体结构”完整拼起来,你就不再只是会用命令行,而是会读懂这台系统的“生理构造图”。




