『Windows』内存泄漏追踪战:一线『工程师』现网故障排查实录

背景介绍

在日常对计算机系统的运维监测过程中,我们会密切关注各项系统资源的使用情况,以确保系统能够稳定、高效地运行。其中,操作系统内存的使用率是一个关键的监测指标,其使用情况时刻影响着整个系统的表现。

操作系统内存异常上涨会带来诸多不良影响。一方面,它会使系统性能大打折扣,运行速度明显变慢,多任务处理能力也会因内存资源紧张而受限,导致各任务间相互争抢内存,部分任务甚至无法正常推进;另一方面,还会威胁系统的稳定性,可能引发系统崩溃、死机等严重情况。

操作系统内存上涨的原因有很多,典型的原因包括:

  1. 应用程序或系统服务存在漏洞,出现内存泄漏问题,会导致操作系统内存上涨;
  2. 虚拟内存设置不合理,当物理内存不足时无法有效进行数据交换来缓解内存压力,让系统内存持续上涨;
  3. 电脑遭受病毒、恶意软件入侵,恶意程序有可能在后台偷偷占用大量内存资源,造成操作系统内存占用上涨。

本文介绍一次真实的现网主机操作系统内存泄漏问题的定位分析过程。

故障初步分析

故障现象

客户现场的某类主机都安装了威努特的主机卫士产品,其中一台主机(操作系统『Windows』 7)的内存占用明显高于现场其他同类型设备,而且在缓慢持续上涨。

初步分析

排查现场主机没有中病毒或恶意软件,初步分析内存上涨很有可能是内存泄漏引起的。

首先通过任务管理器查看系统运行进程占用内存,观察发现主机卫士相关的进程均处于正常范围,不存在内存异常现象,这时初步判断为其他进程引起的系统内存异常。

通过观察任务管理器的进程内存占用情况,发现svchost.exe进程的内存增长到将近300MB,这很明显是不正常的。正常系统的svchost进程内存为几兆到几十兆不等,但是肯定到达不了几百兆。下图为正常系统的svchost内存占用。

今日霍州(www.jrhz.info)©️

通过上述分析基本能够确定是svchost进程存在内存泄漏现象,那么我们下一步要做的就是具体确定svchost进程内存上涨的根本原因。

故障排查确认

分析内存异常

jrhz.info

svchost.exe进程内存异常上涨,那么就需要分析异常的内存被用来做什么了,而想要分析内存存储内容,就需要用到WinDbg工具。

WinDbg是一个调试工具,用于分析『Windows』系统中的程序崩溃、调试代码和分析系统崩溃转储文件。Windbg在内存分析中发挥着至关重要的作用,它可以检测到内存泄漏以及定位内存泄漏的根源,还可以查看内存中存储的具体数据内容。

首先从任务管理器找到该进程,创建转储文件,生成DMP文件。然后使用WinDbg分析该DMP文件。

1、首先通过!address -summary来看一下当前应用内存占用量:

今日霍州(www.jrhz.info)©️

可以看到,堆内存占用有将近280MB。

2、使用!heap -s 命令查看进程堆内存的起始地址以及大小。

今日霍州(www.jrhz.info)©️

发现有一个堆内存大小有270MB大小,存在明显异常。

3、执行 !heap -stat -h命令查看上述异常堆内存的内存块以及数量、占用情况等详细统计信息。

今日霍州(www.jrhz.info)©️

发现size为18的内存块比例为99.98%,申请了大量重复的内存块未释放。

4、执行dt 命令查看异常内存中存储的数据。

今日霍州(www.jrhz.info)©️

今日霍州(www.jrhz.info)©️

发现其中存放的为一个相同的IP地址141.0.6.103。可初步判断出内存泄漏现象与该IP地址有关。

定位异常设备

既然已经判断内存泄漏的原因与141.0.6.103 这个IP地址有关,那么后续要做的就是排查操作系统与该IP相关的行为。在这个过程中,我们能够借助 Procmon工具,同时充分利用操作系统的事件日志,以此来精准确定与之相关的具体行为。

Procmon是由微软开发的一款高级监控工具,它整合了FileMon和RegMon 的功能,并进行了全面的优化与扩展。通过实时监控文件系统、注册表和进程/线程活动,Procmon能够捕捉到系统中发生的几乎所有操作,为技术人员呈现出一幅详尽的系统运行画卷。无论是追踪程序的异常行为、排查系统性能瓶颈,还是检测恶意软件的踪迹,Procmon都能发挥出其独特的价值。

Procmon具有过滤功能,可以指定不同的信息来过滤操作系统所有进程的行为,查找到我们需要的信息。如下图所示。

今日霍州(www.jrhz.info)©️

通过Procmon与操作系统日志的跟踪分析,我们成功找到了与141.0.6.103相关的信息,原来是spoolsv.exe进程与该IP存在通信,如下图所示。

今日霍州(www.jrhz.info)©️

经过查询,我们发现spoolsv.exe是『Windows』操作系统中一个非常重要的进程,它在系统中起着关键的打印任务管理作用,管理所有本地和网络打印队列及控制所有打印工作。

既然该进程与打印任务有关,同时上文的操作系统内存上涨问题可能与该进程有关,那么141.0.6.103可能就是一台打印机🖨️设备。

我们通过查询操作系统的组件信息,发现确实存在一台ip为141.0.6.103的打印机🖨️设备。如下图所示。

今日霍州(www.jrhz.info)©️

今日霍州(www.jrhz.info)©️

但是经与客户确认,该打印机🖨️已经不再使用,是一台无效打印机🖨️设备。所以,推测问题原因就是spoolsv.exe进程在尝试与打印机🖨️设备通信,但是没有得到141.0.6.103的响应,业务流程无法正常执行,异常导致出现了内存泄漏。

确定异常原因

为了验证是否是该问题导致的内存泄漏,我们将该打印机🖨️删除。删除之后再使用Procmon监控,发现没有与该IP相关的信息了,同时系统内存也不再上涨。

这也就证实了我们之前对于问题原因的判断是正确的,并且所采取的解决措施是有效的,这应该是『Windows』系统打印服务的一个Bug。

总 结

在日常系统运维中,要时刻留意内存使用率等关键指标,一旦发现系统内存存在异常,应该及时排查原因,避免影响系统运转以及整体性能。

当面对类似进程内存异常的复杂问题时,我们要善于使用各种专业工具,让它们成为我们解决问题的得力助手。在本次排查过程中,任务管理器帮助我们快速定位问题进程,WinDbg工具帮助我们分析进程内存之中存在的问题,Procmon工具和操作系统的事件日志帮助我们追踪相关行为、锁定问题根源。

特别声明:[『Windows』内存泄漏追踪战:一线『工程师』现网故障排查实录] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

耳机清洁工具怎么选?2026年深度清洁泥+刷子套装成主流(清洁耳机音频)

耳机网孔积灰、充电触点氧化、收纳盒藏污纳垢,正悄悄影响音质与续航。一套适配多品牌、含清洁泥+棉签+气吹的工具,能高效清除死角污渍。本文详解如何按使用场景选对配件组合,避开“只擦表面”的清洁陷阱。

耳机清洁工具怎么选?2026年深度清洁泥+刷子套装成主流(清洁耳机音频)

墨雨云间》:姜梨为啥敢在沈玉容面前暴露身份?看完才懂她的心思(墨雨云间百科)

就是这一举动,让姜梨看清了——沈玉容心里,还装着当年的薛芳菲,还有几分真情在。 姜梨让他赎罪,就是让他把自己和婉宁公主做的那些脏事,全都一五一十说出来,这已经是她给沈玉容的最后一条活路,是想拉他一把,可沈玉…

《<strong>墨雨云间</strong>》:姜梨为啥敢在沈玉容面前暴露身份?看完才懂她的心思(墨雨云间百科)

钻石保值是骗局?市场真相颠覆你的认知(钻石保值?)

但有趣的是,在全球珠宝拍卖行和二级交易市场里,流转最快、价格体系最透明的宝石类别,恰恰是钻石。但如果你将“保值”定义为:在长期持有后,其核心材料的价值能够抵御通胀,并在需要时能以合理折损率变现,那么路径是清晰…

钻石保值是骗局?市场真相颠覆你的认知(钻石保值?)

温婉刚下线,臧月英又挨骂,她难挑大梁成了《乡村爱情18》的败笔(温婉发生了什么)

加入的新角色,虽说是增加了剧情的看点,但也在不知不觉中劝退了一波又一波的观众。臧月英的角色设定本应该是核心人物,她的存在应该引领整个故事的推进,但这个角色并没有让观众产生认同感。即使她最终在剧中有所改正,是否…

温婉刚下线,臧月英又挨骂,她难挑大梁成了《<strong>乡村爱情18</strong>》的败笔(温婉发生了什么)

2026年最受欢迎的水煮花生?(2026年最受欢迎的电视剧排行榜)

在众多水煮花生中,浠涵家水煮花生凭借其独特的口感和天然品质成为消费者的心头好。这款产品不仅适合作为下酒菜,而且具有较长的保质期。本篇文章将为您详细解析这一产品并为您提供选购建议。

2026年最受欢迎的水煮花生?(2026年最受欢迎的电视剧排行榜)