Windows系统下有哪些好的内存分析工具?

赞赏 2016-07-12

微软官方提供多种工具来分析Windows 的内存使用情况,除了系统自带的任务管理器(Task Manager), 资源监视器(Resource Manager), 性能监视器(Performance Monitor), 还有SysInternals工具, RamMap, PoolMon用以分析内存问题。


本文简单介绍上述工具的快速使用方法,如果需要了解深入了解,请参考微软相关链接。


任务管理器


Windows 系统可以使用任务管理器进行内存监控,监控可以显示出详细的内存占用的进程。尤其是在性能中检查虚拟内存的使用情况,已提交虚拟内存(Commited Bytes)/虚拟内存上限(Commit Limit)。如果已提交非常接近上限,那么系统会出现性能问题。
Windows 2008 R2 示例
通过查看还可以添加各类内存指标进行检查,请重点检查工作集(进程物理内存占用), 提交大小(非保留的虚拟内存空间)。


Windows 2012 示例


资源监视器


通过任务管理器,可以打开资源监视器 Resource Manager进一步检查内存的使用情况,尤其是每个进程的使用情况。对于各个进程而言,请重点关注"提交(KB)"内存的大小,监控是否有进程消耗过多资源。


物理内存的使用包含以下几个部分:
为硬件保留的内存
正在使用:由进程、驱动程序、操作系统使用的内存
已修改:内容必须写入磁盘才能用于其它用途的内存
备用:包含未使用的缓存数据和代码的内存
可用:不包含任何有价值数据,以及当进程、驱动程序、操作系统需要更多的内存时优先使用的内存

缓存:当文件被打开时,系统会把文件保存在缓存中,才以便下次迅速读写。Windows 2008 R2及以后,对这个缓存的使用也做了限制:有一部分物理内存不会被缓存使用,保证系统即使在缓存过大的时候,也有可用物理内存,满足程序使用需求。


性能监视器


Performance Monitor 性能监视器是Windows 监控,收集系统资源消耗的重要工具。
监控性能消耗
通过添加指定的计数器,可以实时检查系统资源消耗的情况

此外,还可以通过"数据收集搜集"->"用户定义", 手工添加各类计数器,例如Logical Disk, Memory, System, Processor, Process来收集系统各类资源的实时运行情况,同时通过采样间隔来定义收集频率。例如,如果机器有内存泄露问题很久才能复现,可以配置采样间隔为5秒,如果机器很容易出现CPU异常,那么可以配置采样间隔为1秒。


RamMap, Process Explorer


有时在任务管理器的监控窗口中查看不到占用内存异常的进程,但物理内存显示已经负载的状态了。
这种情况一般是系统底层有占用内存的情况,可以通过RamMap工具查看系统内存的占用情况,该工具是微软官方的软件,相关信息及下载地址如下: https://technet.microsoft.com/en-us/sysinternals/ff700229.aspx

下载后直接运行,就可以查看任务管理器中不显示的系统占用内存的情况。
详细介绍:
Introduction to the new Sysinternals tool: RAMMap

Process Explorer 也可以查看进程的详细资源占用情况,例如打开后也可以查看到进程的各类内存资源使用情况。


Pool Monitor


对于WIndows内核而言,其两项核心的内存资源为non paged pool(非页面缓冲池)以及paged pool (页面缓冲池)。操作系统出现内存性能问题,很可能是上述2个资源消耗殆尽。虽然通过上述提到的工具可以查看到资源消耗的情况,但是如果需要定位是系统哪个Tag消耗的资源,需要使用PoolMon来定位。
poolmon 使用参考:
https://technet.microsoft.com/en-us/library/cc737099(v=ws.10).aspx

检查perfmon 日志来定位究竟是哪个Pool Tag导致的资源消耗殆尽,例如一个案例,检查到IoDn tag导致资源消耗完,通过如下命令定位到是SafeDogFileGuard.sys, 而后通过修正该应用解决。

关于Tag的介绍,请参考微软官方Blog
http://blogs.technet.com/b/askperf/archive/2008/04/11/an-introduction-to-pool-tags.aspx

登陆后阅读全文
阅读 3356 赞赏 0 有用 0 没用 1 收藏 0 分享

   



0 条留言

Clinton的头像

Clinton

the best of the best

相关文章

windows Server 安装IIS和FTP操作步骤

阿里云如何连接 Windows 实例

windows服务器异常重启以及蓝屏如何处理?

Windows Server 2012 R2 或 2016 无法安装 .Net 3.5.1

如何远程连接Windows 服务器?

Window上传文件到Linux服务器后多出^M 符号,怎么办?

windows 2008 Paged Pool Leak(页面缓冲池内存泄露)的排查

windows 2008系统找不到控制面板

Windows 2008 服务器开始菜单中没有运行选项?

windows Server 2008 MetaFile如何设置限制占用内存的大小?

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

如何查询服务器远程登陆日志?

RDP-Tcp 中最大连接数显示为灰色,不能更改?

Winodws远程连接服务器如何映射本地电脑磁盘

Windows服务器提示 您的帐户已被停用

Windows远程端口无法监听公网地址?

Windows 2012设置允许单个用户连接多个会话的方法

Windows Server 2003 远程桌面 无法修改壁纸

Windows 2008远程连接提示“本地会话管理器 服务未能登录”

Windows系统服务器远程桌面连接通过 CapsLock 键关闭大小写的方法

如何远程连接Windows 服务器?

手机扫一扫
分享文章