怎么排查Windows服务器中由于内存泄漏导致的频繁宕机

秋浩大大_6185

秋浩大大_6185

2026-04-17

806人浏览

原创

确认内存泄漏后,分四步排查:第一步用perfmon添加pool nonpaged/paged bytes和available mbytes计数器,采样10分钟持续监控8–24小时;第二步区分用户态(任务管理器+vmmap)与内核态(resmon+poolmon);第三步针对wmi、iis(appcmd list wp)、java(jstat/jmap)等高频场景验证;第四步用procdump或内核转储结合windbg分析(!vm 1/!poolused 2/!heap -s)。

windows服务器因内存泄漏频繁宕机,核心表现是:可用内存持续下降、系统响应迟缓、最终触发蓝屏或服务自动终止。这不是简单“杀进程”能解决的问题,关键在于定位泄漏源头——它可能藏在用户态应用、内核驱动、wmi服务,甚至iis工作进程中。排查必须分阶段推进,从确认泄漏存在开始,再到锁定具体模块。

第一步:用性能监视器(PerfMon)确认泄漏模式

内存泄漏的本质是“内存使用量随时间单向增长且不回落”。不能只看任务管理器的瞬时百分比。

  • 打开perfmon,添加以下三个关键计数器:
  • Memory\Pool Nonpaged Bytes(非分页缓冲池)——内核驱动泄漏的典型指标,持续上涨说明驱动或系统服务有问题
  • Memory\Pool Paged Bytes(分页缓冲池)——WMI、某些服务或驱动也可能占用这里
  • Memory\Available MBytes(可用物理内存)——应呈现缓慢但明显的下降趋势,而非短期波动
  • 设置采样间隔为600秒(10分钟),连续记录至少8–24小时;若发现非分页池在几小时内上涨超300MB且不回落,基本可判定为内核级泄漏

第二步:区分泄漏层级——用户态还是内核态

先缩小范围,再深入分析。不同层级对应不同工具和路径:

windows-healing-gateway
windows-healing-gateway

通过任务计划程序自动监控并自修复 Windows 上的 OpenClaw Gateway,具备 AI 诊断和 Telegram 报警功能。

下载
  • 用户态泄漏(如Java、.NET、w3wp.exe):打开任务管理器 → “详细信息”选项卡 → 按“内存(工作集)”排序,观察是否有进程内存持续攀升(例如每小时涨500MB以上);对疑似进程,用VMMap打开,重点关注“Private Data”列是否不断增大
  • 内核态泄漏(驱动或系统服务):打开资源监视器(resmon)→ “内存”选项卡 → 查看底部“硬错误”和“内核内存”区域;若“非分页池”占用远高于正常值(如服务器空闲时仍超800MB),需进一步用poolmon定位驱动标签(配合windbg分析转储)
  • 特别注意WMI服务:若svchost.exe(托管Winmgmt)或WmiPrvse.exe内存/句柄数居高不下且重启后缓解、几小时后复发,大概率是WMI提供程序泄漏;可运行sc config winmgmt type= own将其隔离到独立svchost,再用tasklist /svc验证

第三步:针对常见场景快速验证

不必从零开始,优先检查高频泄漏点:

  • IIS应用程序池:运行%windir%\System32\inetsrv\appcmd list wp匹配w3wp.exe PID,再用PerfMon监控该进程的\Process(w3wp)\Private Bytes;若稳定上涨,收集其用户模式内存转储(使用ProcDump:procdump -ma -n 3 -s 60 w3wp.exe leak_dump)
  • Java应用:用jstat -gc {pid}查看老年代是否持续增长且GC无效;结合jmap -histo {pid}查大对象分布;必要时生成heap dump用Eclipse MAT分析
  • 第三方服务或驱动:检查最近安装的软件、更新的硬件驱动;在安全模式下观察内存是否稳定;使用driverquery /v导出驱动列表,比对已知问题版本

第四步:抓取并分析内存转储(关键证据)

当确认泄漏存在但无法通过进程名判断时,需获取内存快照:

  • 对高内存进程(如w3wp、java、svchost),用ProcDump命令:procdump -ma -c 90 -s 10 -n 3 {pid} memory_full.dmp(当CPU或内存超90%时,每10秒捕获一次,共3次)
  • 对系统级问题,启用内核内存转储(控制面板 → 系统 → 高级系统设置 → 启动和故障恢复 → 写入调试信息 → 选择“内核内存转储”)
  • 用WinDbg加载dmp文件,执行:!vm 1看整体内存分布,!poolused 2排非分页池占用,!heap -s查用户堆碎片

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

windows

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

880

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2592

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

876

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

769

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2336

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4312

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

707

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Conan 2 安装指南
Conan 2 安装指南

共0课时 | 0人学习