windows 10是否启用2mb大页需三步验证:一查selockmemoryprivilege权限,二用coreinfo确认cpu支持“2mb large page support”,三通过性能监视器观察“large page allocations/sec”是否非零。

确认Win10系统是否启用大页(2MB)支持
Windows 10默认使用4KB页面,但部分64位系统在满足特定条件时可启用2MB大页(Large Page),主要用于SQL Server、Hyper-V等对内存访问延迟敏感的应用——这需要硬件、BIOS、系统策略三者同时配合,不能仅靠任务管理器或设置界面直接查看。
第一步:以管理员身份运行CMD或PowerShell,执行命令:
```powershell
Get-Process -Id $PID | Select-Object -ExpandProperty NonpagedSystemMemorySize64
```
该命令本身不直接显示页大小,但若返回值非零且后续步骤中能成功调用大页API,则说明内核已加载大页支持模块。
第二步:检查系统是否允许应用程序请求大页。
运行命令:
```cmd
whoami /priv
```
在输出列表中查找 【SeLockMemoryPrivilege】。若状态为“已启用”,说明当前账户具备锁定物理内存权限——这是应用申请大页的强制前提;若未列出或显示“已禁用”,则即使硬件支持,系统也不会分配2MB页。
第三步:验证CPU是否支持大页。
下载并运行微软官方工具 Coreinfo(来自Sysinternals套件),在管理员CMD中执行:
```cmd
coreinfo -v
```
观察输出中“EPT”和“PAE”字段:若显示“*”且“LAHF/SAHF”存在,同时“2MB large page support”一行明确标有“*”,才表示CPU与内核均支持2MB页;若该行为空或为“-”,则系统仅使用4KB页,无例外。
通过注册表判断系统级大页启用状态
Windows不会在图形界面中暴露“当前使用页大小”选项,但注册表中存在一个关键开关,决定系统是否向进程提供2MB页分配能力。
方法一:检查注册表路径是否启用大页策略
按 Win+R 输入 regedit → 定位到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
查找名为 【LargePageMinimum】 的DWORD值。若该键存在且数值大于0(单位为字节),说明系统已配置最低大页保留量;若不存在或值为0,则系统不预留大页空间,所有内存分配默认走4KB路径。
方法二:确认是否禁用大页
在同一注册表路径下,检查是否存在名为 【DisablePagingExecutive】 的DWORD值。若其值为1,表示内核代码被锁定在物理内存中,此时2MB页分配被隐式禁止;若不存在或值为0,则不构成阻碍。
用性能监视器实时观测页面分配行为
真正区分4KB与2MB页的唯一可靠方式,是看内核实际分配时是否使用了大页——这需借助性能计数器,而非静态配置。
第一步:打开性能监视器(perfmon.msc)→ 左侧点击“性能监视器”→ 点击工具栏“+”号添加计数器。
第二步:在“可用计数器”列表中依次展开:
“Memory” → “Large Page Allocations” → 勾选“Large Page Allocations/sec”和“Large Page Allocation Failures/sec”。
这两个计数器只在系统启用大页支持且有进程主动申请时才会产生非零值;若长期为0,说明当前负载下未触发2MB页分配,等效于系统实际运行在纯4KB页模式。
第三步:添加后观察1分钟以上。若“Large Page Allocations/sec”持续出现大于0的数值(如0.5、2.3),证明系统正在交付2MB页;若始终为0,哪怕CPU和注册表都显示支持,也说明当前没有进程启用该功能,对用户而言等同于未开启。
注意:此计数器不会显示“当前页大小是4K还是2M”的结论性文字,它只反映真实发生的分配动作——这才是判断依据。











