最直接有效的方式是用get-counter命令获取系统级内存提交使用率;一、执行get-counter '\memory\% committed bytes in use'获取当前百分比;二、用同一命令同时获取cpu和内存使用率;三、用get-process筛选占用超100mb内存的进程;四、可用while循环每3秒刷新监控。
最直接有效的方式是用 get-counter 命令获取系统级内存提交使用率,它反映的是 windows 虚拟内存管理器的实际压力,比单纯看“已用物理内存”更准确、更稳定。
一、获取当前内存使用率百分比
以管理员身份打开 PowerShell(右键开始菜单 → 选择“Windows PowerShell(管理员)”),执行:
Get-Counter '\Memory\% Committed Bytes In Use' -SampleInterval 1 -MaxSamples 1 | ForEach-Object {$_.CounterSamples.CookedValue}
命令会立即返回一个数字,比如 72.3,代表当前内存提交占用率为 72.3%。这个值超过 85% 通常意味着系统开始频繁使用页面文件,可能出现卡顿。
二、同时查看 CPU 和内存使用率
适合快速诊断整体负载,命令一次输出两个核心指标:
Get-Counter '\Processor(_Total)\% Processor Time', '\Memory\% Committed Bytes In Use'
结果中第二行数值就是内存提交使用率,单位为百分比,保留小数点后两位,数据来自系统内核性能计数器,无需额外权限校验即可读取。
三、结合进程列表,定位“吃内存”的程序
知道总使用率高之后,下一步是查谁在占用。运行以下命令,列出所有占用超 100MB 物理内存的进程(按从高到低排序):
Get-Process | Where-Object {$_.WorkingSet64 -gt 100MB} | Sort-Object WorkingSet64 -Descending | Select-Object ProcessName, @{Name='Memory_MB';Expression={[math]::Round($_.WorkingSet64/1MB,1)}} -First 8
输出示例:
chrome.exe Memory_MB: 1245.3devenv.exe Memory_MB: 986.7
vmware-vmx.exe Memory_MB: 820.1
四、持续监控(可选进阶)
如需每 3 秒刷新一次内存使用率,便于观察变化趋势,可用循环命令:
while($true){(Get-Counter '\Memory\% Committed Bytes In Use').CounterSamples.CookedValue; Start-Sleep -Seconds 3}
按 Ctrl + C 可随时中止。该方式不依赖图形界面,适合远程维护或后台记录。











