本文提供分层排查流程,用于排查 Windows 服务器因应用程序、系统服务或配置不当导致的内存使用率过高问题。
问题描述
当 Windows 服务器出现以下任一现象时,可能表明存在内存资源瓶颈:
运行在 Windows 服务器上的业务应用响应缓慢,出现服务中断或系统卡顿。
通过轻量应用服务器控制台,单击实例名称,查看实例内存使用率监控时,发现内存使用率过高。
收到内存使用率超过设定阈值的告警信息。
排查流程
状态评估:通过任务管理器了解内存的总体使用情况,判断是否存在明显的内存压力。
进程级分析:使用资源监视器深入分析,按物理内存占用定位消耗内存最多的进程。
问题解决:根据分析结果,执行相应的解决方案。
持续跟踪:实施解决方案后,配置持续的监控告警,持续检测服务器。
实施步骤
操作示例基于Windows 2025 数据中心版,不同版本的界面可能存在差异。
步骤一:评估内存总体状况
右键单击任务栏选择任务管理器并打开。
切换到性能选项卡,并选择内存。
分析关键指标:
可用:系统当前可立即分配给应用程序的物理内存量。
已提交:操作系统已承诺为所有进程分配的虚拟内存总量。该值由两部分组成:
X/Y。X是当前已使用的虚拟内存,Y是虚拟内存上限(物理内存 + 页面文件大小)。如果X持续接近Y,表明系统可能频繁使用页面文件,导致性能下降。
步骤二:定位高内存消耗的进程
优先使用资源监视器定位进程;若资源监视器中没有发现异常的应用程序进程,则用RAMMap工具分析(RAMMap可以查看系统级内存占用)。
资源监视器
在桌面底部的搜索框中输入资源监视器并打开。
切换到内存选项卡。
点击工作集(KB)列进行降序排序,将占用物理内存最多的进程排列在顶部。
分析列表顶部的进程。分析时,应优先关注工作集指标,它代表进程实际占用的物理内存,是判断进程内存占用的首要指标。识别占用工作集最高的进程,判断其是否为预期的业务进程。
工作集(KB):进程当前正在使用的物理内存量。
提交 (KB):操作系统为该进程保留的虚拟地址空间大小。一个进程可能提交了大量内存但并未实际使用,因此该指标可能产生误导。

RAMMap工具
若资源监视器未发现进程异常,但可用内存持续偏低,则需考虑系统级内存占用(如文件缓存或驱动程序泄漏)。此时,应使用微软官方工具RAMMap进行深度分析。
下载并运行RAMMap。
访问 RAMMap 官方下载页面 下载工具包并解压。
双击
RAMMap.exe运行程序。
每个选项卡的显示方式说明如下。

Use Counts:使用计数,按类型和分页列表列出的使用情况摘要。
Processes:进程,进程工作集大小。
Priority Summary:优先级摘要,确定备用列表大小优先级。
Physical Pages:物理页,所有物理内存的每页使用量。
Physical Ranges:物理范围,物理内存地址。
File Summary:文件摘要,RAM 中的文件数据(按文件显示)。
File Details:文件详细信息,按文件显示的各个物理页。
步骤三:分场景处理与优化
根据定位到的内存消耗源头,选择对应的解决方案。
场景一:异常进程占用大量内存
若发现非业务相关或行为异常的进程占用了大量内存,需要将其终止。
通过在任务管理器或者资源监视器中定位到内存占用较多的程序,在该程序上右键点击,并选择结束程序即可。如果怀疑进程为恶意程序,可以使用云安全的病毒查杀。
云安全的病毒查杀需要付费使用。
在结束进程前,请务必确保了解该进程的相关信息,避免因误操作导致业务中断。
场景二:正常业务进程导致内存瓶颈
正常业务进程导致的内存瓶颈,推荐升级实例规格。在控制台执行升级配置操作,选择更高内存的套餐。
如果发现有单个业务进程占用大量内存,除了升级实例规格外还可考虑优化业务进程。
步骤四:持续跟踪
设置报警:建议为该服务器的内存使用率或可用内存指标设置报警规则,具体操作见云产品监控。
持续监控:在云监控页面检测服务器的系统指标。
如果监控发现业务进程内存偶发性飙升,持续时间短,发生频率低。可以通过设置swap分区(交换空间)缓解该问题。详细步骤参考如何配置Windows实例的虚拟内存。如要彻底解决可以评估是否要升级实例规格。
相关文档
可利用微软的进程资源管理器Process Explorer,获取更详细的进程内存占用情况。
使用微软官方工具Poolmon,可按Pool Tag追踪并定位内核内存池的消耗来源。