Windows系统内存分析工具的介绍(进程管理器,资源管理器,性能监视器, VMMap, RamMap,PoolMon)

微软官方提供多种工具来分析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

个资源消耗殆尽。虽然通过上述提到的工具可以查看到资源消耗的情况,但是如果需要定位是系统哪个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

 

来自:https://help.aliyun.com/knowledge_detail/41079.html

Windows系统内存分析工具的介绍的更多相关文章

  1. Linux系统IO分析工具之iotop常用参数介绍

      Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...

  2. Linux 内存分析工具的命令大全介绍

    在Linux系统经常被用作服务器系统.当服务器内存吃紧的时候,free命令是我们最常使用的内存分析工具. free使用介绍# free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存, ...

  3. Linux系统IO分析工具之iotstat常用参数介绍

    Linux系统IO分析工具之iotstat常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.安装iostat [root@flume115 ~]# yum - ...

  4. 【Java线程与内存分析工具】VisualVM与MAT简明教程

    目录 前言 VisualVM 安装与配置 本地使用 远程监控 MAT 使用场景 安装与配置 获得堆转储文件 分析堆转储文件 窥探对象内存值 堆转储文件对比分析 总结 前言 本文将简要介绍Java线程与 ...

  5. .NET内存分析工具-dotMemory

    .NET内存分析工具-dotMemory 1.介绍 官网链接 引言 程序内存占用较大?内存溢出?需要分析生产环境程序怎么办? dotMemory 使您可以分析各种 .NET 和 .NET Core应用 ...

  6. Android内存分析工具DDMS heap + MAT 安装和使用

    一  Java内存分析工具扫盲 如果像我一样一点都不了解,可以先进行内存分析工具扫盲   MAT介绍:     Eclipse Memory Analyzer(MAT)一个功能丰富的 JAVA 堆转储 ...

  7. Eclipse MAT内存分析工具(Memory Analyzer Tool)

    MAT内存分析工具 MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器.可以用于查找内存泄露以及查看内存消耗情况.MAT是基于Eclipse开发的,是一款免费的性能分 ...

  8. Android内存分析工具

    在Android系统开发过程中,经常会要去分析进程的内存的使用情况,简单介绍下Android内存分析的相关工具. 文章参考: 1.dumpsys 2.memory-analysis-command 1 ...

  9. 摘:Windows系统内存计数器理解解析_备忘录_51Testing软件测试网...

    [原创]Windows系统内存计数器理解解析 2008-05-13 11:42:23 / 个人分类:性能测试 说明:本文的计数器以Windows2003为准. 序言;F9n)\%V1a6Z C)?ZV ...

随机推荐

  1. 【权限设计】一个案例,三个角色,简单说下B端产品的权限设计

    入行以来也接触过一些B端产品,这些产品之中权限管理是重中之重,权限管理不仅仅是整个系统的一个小小的模块,它一直贯穿整个系统,从登陆到操作到最后的登出.说它相当的复杂真不为过. 对于权限,如果从控制力来 ...

  2. 使用Oracle DBLink进行数据库之间对象的訪问操作

    Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中能够操作还有一个数据库中的对象,比如我们新建了一个数据database1.我们须要操 ...

  3. ASP.NET MVC中检测浏览器版本并提示下载更新

    如果网站使用html5.css3.自适应等新特性,可能有些浏览器版本不支持.这时候,需要提醒浏览者更新浏览器的版本到最新. 本篇用到的插件为:http://jreject.turnwheel.com/ ...

  4. 迭代dict的value

    我们已经了解了dict对象本身就是可迭代对象,用 for 循环直接迭代 dict,可以每次拿到dict的一个key. 如果我们希望迭代 dict 对象的value,应该怎么做? dict 对象有一个 ...

  5. C#程序中判断DEBUG和RELEASE状态

    编辑 删除 习惯了用老方式(注释的方式)来对程序进行调试,不过昨天才发现这样调试存在很大的隐患:在工程发布的时候如果忘记把该注释的代码注释掉,而让这些调试信息随工程一起发布,如果是可见的调试信息倒好发 ...

  6. DotNetty的通道处理细节

    第一,客户端如何向服务器主动发送消息: 第二,服务器如何向指定客户端发送消息: 第三,在哪里做报文的拆包和组包. public partial class FrmMain : Form { publi ...

  7. SharePoint SPUtility.SendEmail 发送邮件设置级别

    前言 熟悉sharepoint开发的都知道,sharepoint默认有个发送邮件的方法,不过,最近有个需求,用户希望发送邮件的时候,带上邮件的级别. 经过研究,发现有下面的办法,可以添加邮件的发送级别 ...

  8. @NotBlank注解使用不生效的解决办法

    @NotBlank注解使用时必须在入参处(controller)加@Valid. 如: public Class User{ @NotBlank(message = "用户名不能为空&quo ...

  9. springMVC中HTTP PUT请求该如何传输请求参数呢?

    对于表单提交,tomcat默认只解析POST的表单,对于PUT和DELETE的不处理,所以Spring拿不到.解决方案:1.修改tomcat的server.xml:   <Connector p ...

  10. Android NDK:Aborting..Stop的处理方法

    在eclipse中配置cocos2d-x的android环境时,遇到这样的错误提示 网上搜索了一下,说是在NDK_MODULE_PATH环境变量下未找到所需要的Android.mk文件,后来仔细研究了 ...