首页/系统/Windows 运维速查/页面文件与虚拟内存排查

页面文件与虚拟内存排查

提交内存逼近上限时应用报“内存不足”:查看页面文件与提交量,区分配置问题与泄漏。

Windows 运维速查系统更新于 2026-10-13

页面文件与虚拟内存是什么

Windows 用页面文件(pagefile.sys)扩展可用内存:当物理内存吃紧,或程序一次性申请大块内存时,系统把暂时不用的页面换到磁盘上,为程序提供连续的“提交内存”。应用报“内存不足”时,真正触顶的往往是提交上限,也就是物理内存加页面文件大小之和,而不只是物理内存。

基本信息

适用平台Windows 客户端与服务器全版本
查询命令Get-CimInstance Win32_PageFileUsage;Get-CimInstance Win32_OperatingSystem
图形入口系统属性 → 高级 → 性能设置 → 高级 → 虚拟内存
关键关系提交上限 = 物理内存 + 页面文件大小
默认策略系统托管大小,按物理内存与使用情况自动调整

典型使用场景

  • 应用报内存不足但物理内存还有余量:核对提交上限与当前提交量
  • 排查内存泄漏:观察提交量随时间持续上升而非波动
  • 服务器调优:在物理内存较大的服务器上评估系统托管与固定大小的取舍
  • 启动失败排查:部分应用启动时一次性提交大块内存,上限不足会直接失败
  • 容量规划:按业务峰值提交量决定物理内存与页面文件的组合

常用示例

常用示例
# 页面文件配置与当前使用量
Get-CimInstance Win32_PageFileUsage | Select-Object Name, AllocatedBaseSize, CurrentUsage, PeakUsage
# 系统层面的虚拟内存与提交量
Get-CimInstance Win32_OperatingSystem |
  Select-Object TotalVirtualMemorySize, FreeVirtualMemory, TotalVisibleMemorySize, FreePhysicalMemory
# 查看是否由系统自动管理
Get-CimInstance Win32_ComputerSystem | Select-Object AutomaticManagedPagefile
# 当前提交量(Performance 计数器,单位字节)
(Get-Counter '\Memory\Committed Bytes').CounterSamples.CookedValue
# 提交上限
(Get-Counter '\Memory\Commit Limit').CounterSamples.CookedValue

关键指标读法

指标含义异常参考
AllocatedBaseSize页面文件已分配大小(MB)为 0 表示未配置
CurrentUsage当前使用量(MB)长期接近上限说明内存紧张
PeakUsage历史峰值使用量用于评估是否需要调大
Commit Limit提交上限(物理内存+页面文件)应用报内存不足时先看它
Committed Bytes当前已提交字节数持续接近上限即为真实瓶颈
把页面文件设为 0 或完全禁用,会让某些应用在启动或处理大文件时直接崩溃,也会让系统在内存紧张时缺少缓冲。服务器上不建议禁用,保留系统托管或设置合理固定值更稳妥。
固态盘上存在页面文件是正常设计,不必为了让“写入寿命”好看而关闭它。真正需要关注的是页换页频率(Pages/sec 类指标),频繁换页才是性能问题的信号。
调整页面文件大小需要重启才完全生效,且会短时间影响内存敏感型应用。生产服务器上做这项变更要走变更窗口,并提前记录当前提交量作为对比基线。

易错点

  • 误以为物理内存够用就不会报错:提交上限才是应用看到的边界
  • 直接禁用页面文件:部分应用启动即失败,问题出现在变更之后却很难联想到
  • 只调页面文件不找泄漏:把内存泄漏当成配置不足,指标会继续恶化
  • 不看 PeakUsage 就定大小:按当前瞬时值配置,业务高峰仍然触顶
  • 变更后不重启验证:新的设置未生效,误以为调整无效

数据来源与参考

  • Microsoft Learn:Win32_PageFileUsage
  • Microsoft Learn:页面文件介绍

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌