Windows系统中如何查看内存使用情况?

59阅读
0评论
0点赞

本文介绍了微软提供的几种工具,包括任务管理器、资源监视器、性能监视器以及SysInternals套件中的RAMMap和PoolMon等,用于帮助用户深入分析Windows系统的内存使用情况,从而解决可能出现的性能问题。

微软提供了多种工具帮助用户分析Windows系统的内存使用情况。除了系统自带的任务管理器、资源监视器和性能监视器之外,还有SysInternals套件中的RAMMap和PoolMon等工具,它们可以帮助您深入分析内存问题。本文将简要介绍这些工具的使用方法。如需深入了解,请参考微软相关文档。

任务管理器

Windows系统内置的任务管理器能够监控详细的内存占用情况。特别是在“性能”选项卡中,您可以检查虚拟内存的使用情况。通过比较“已提交虚拟内存”与“虚拟内存上限”,可以判断系统是否面临性能瓶颈。如果“已提交虚拟内存”接近上限,则可能会出现性能问题。

使用步骤

  1. 打开任务管理器,点击“性能”标签页,查看内存使用情况。

    任务管理器性能视图

  2. 添加各类内存指标进行检查。打开任务管理器,依次选择“查看” > “选择列”,添加“内存 - 工作集”(检查进程物理内存占用)和“内存 - 提交大小”(非保留的虚拟内存空间)等重要指标。

    任务管理器选择列

资源监视器

通过任务管理器,可以进一步打开资源监视器,更细致地检查内存使用情况,特别是每个进程的内存使用情况。重点关注“提交(KB)”内存大小,监控是否有进程消耗过多资源。

资源监视器

物理内存使用主要包含以下几部分:

  • 硬件保留内存
  • 正在使用的内存(由进程、驱动程序、操作系统使用)
  • 已修改内存(必须写入磁盘才能用于其他用途的内存)
  • 备用内存(包含未使用的缓存数据和代码的内存)
  • 可用内存(不包含任何有价值数据,当进程、驱动程序或操作系统需要更多内存时优先使用的内存)
  • 缓存(当文件被打开时,系统会将其保存在缓存中以便快速读写。从Windows 2008 R2开始,系统对缓存使用进行了限制,确保即使缓存过大时仍有足够的可用物理内存)

性能监视器

性能监视器是Windows系统中用于监控和收集系统资源消耗的重要工具。

使用步骤

  1. 通过添加指定的计数器,实时监控系统资源消耗情况。

    性能监视器计数器

  2. 在“数据收集器集” > “用户定义”中手动添加各类计数器,例如Logical Disk、Memory、System、Processor、Process等,以收集系统各类资源的实时运行情况,并通过设置采样间隔来定义收集频率。例如,如果机器存在长时间才能复现的内存泄漏问题,可以设置采样间隔为5秒;如果机器容易出现CPU异常,则可以设置采样间隔为1秒。

    性能监视器数据收集

RAMMap

在某些情况下,任务管理器可能无法显示占用内存异常的进程,但物理内存却显示已满。这通常是因为系统底层存在内存占用问题。此时,可以使用RAMMap工具来查看系统内存的占用情况。RAMMap是微软官方提供的软件,更多信息及下载地址请访问RAMMap

Process Explorer

Process Explorer同样可以查看进程的详细资源占用情况,包括进程的各类内存资源使用情况。

Process Explorer

Pool Monitor

对于Windows内核而言,non paged pool(非页面缓冲池)和 paged pool(页面缓冲池)是两项核心的内存资源。操作系统出现内存性能问题时,很可能是因为这两项资源耗尽。虽然上述工具可以查看资源消耗情况,但如果需要定位具体是哪个Tag消耗了资源,则需要使用PoolMon来定位。使用说明请参考Pool Monitor

通过检查perfmon的日志来定位究竟是哪个Pool Tag导致资源耗尽。例如,如果发现IoDn Tag导致资源耗尽,可以通过以下命令定位到是SafeDogFileGuard.sys,并通过修正该应用解决问题。

findstr /m /i IoDn *.sys

系统输出结果示例:

Pool Monitor示例

评论(0)
暂无评论,期待您的发言...
发表评论