Windows系统内存分析工具的介绍
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系统内存分析工具的介绍的更多相关文章
- Linux系统IO分析工具之iotop常用参数介绍
Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...
- Linux 内存分析工具的命令大全介绍
在Linux系统经常被用作服务器系统.当服务器内存吃紧的时候,free命令是我们最常使用的内存分析工具. free使用介绍# free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存, ...
- Linux系统IO分析工具之iotstat常用参数介绍
Linux系统IO分析工具之iotstat常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.安装iostat [root@flume115 ~]# yum - ...
- 【Java线程与内存分析工具】VisualVM与MAT简明教程
目录 前言 VisualVM 安装与配置 本地使用 远程监控 MAT 使用场景 安装与配置 获得堆转储文件 分析堆转储文件 窥探对象内存值 堆转储文件对比分析 总结 前言 本文将简要介绍Java线程与 ...
- .NET内存分析工具-dotMemory
.NET内存分析工具-dotMemory 1.介绍 官网链接 引言 程序内存占用较大?内存溢出?需要分析生产环境程序怎么办? dotMemory 使您可以分析各种 .NET 和 .NET Core应用 ...
- Android内存分析工具DDMS heap + MAT 安装和使用
一 Java内存分析工具扫盲 如果像我一样一点都不了解,可以先进行内存分析工具扫盲 MAT介绍: Eclipse Memory Analyzer(MAT)一个功能丰富的 JAVA 堆转储 ...
- Eclipse MAT内存分析工具(Memory Analyzer Tool)
MAT内存分析工具 MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器.可以用于查找内存泄露以及查看内存消耗情况.MAT是基于Eclipse开发的,是一款免费的性能分 ...
- Android内存分析工具
在Android系统开发过程中,经常会要去分析进程的内存的使用情况,简单介绍下Android内存分析的相关工具. 文章参考: 1.dumpsys 2.memory-analysis-command 1 ...
- 摘:Windows系统内存计数器理解解析_备忘录_51Testing软件测试网...
[原创]Windows系统内存计数器理解解析 2008-05-13 11:42:23 / 个人分类:性能测试 说明:本文的计数器以Windows2003为准. 序言;F9n)\%V1a6Z C)?ZV ...
随机推荐
- WAP2.0(XHTML MP)基础介绍
(一)XHTML MP 介绍XHTML MP(eXtensible HyperText Markup Language Mobile Profile)WAP2.0与WCSS(WAP CSS /WAP ...
- C#怎么通过一个按钮Button,实现点击这个按钮可以打开一个文件或者文件夹?
string path1 = @"d:\log.txt"; //打开D盘下的log.txt文件 System.Diagnostics.Process.Start(path1); ...
- Golang 版本发布 与 TIOBE 排名
2016年国庆节(10月1日)开始接触 Go 语言,记录一下它的 版本发布 与 TIOBE 排名: Golang 排行榜 月份 版本 排名 备注 2012.03 1.0 201 ...
- delphi GetKeyState
GetKeyState(VK_CAPITAL) & 0x0001 0x8000 是键有否按下0x0001 是键的翻转状态 var bF1Down: Boolean;begin bF1Down ...
- xamarin 断点 不命中
Async Debugging Breakpoints not being hit breakpoint in Android library project not hit when disable ...
- C#编程(五十四)----------Lookup类和有序字典
原文链接: http://blog.csdn.net/shanyongxu/article/details/47071607 Lookup类 Dictionary<Tkey,TValue> ...
- 【python】python编码方式,chardet编码识别库
环境: python3.6 需求: 针对于打开一个文件,可以读取到文本的编码方式,根据默认的文件编码方式来获取文件,就不会出现乱码. 针对这种需求,python中有这个方式可以很好的解决: 解决策略: ...
- uva 10406 Cutting tabletops
Problem D: Cutting tabletops Bever Lumber hires beavers to cut wood. The company has recently receiv ...
- dll 显示调用
今天尝试写了一个简单的C++DLL,并且用另一个CPP调用它,啥都不说,先贴代码 1.DLL(冒泡算法) extern "C" 必须最左 _declspec(dllexport)和 ...
- Quartz:不要重复造轮子,一款企业级任务调度框架。
背景 第一次遇到定时执行某些任务的需求时,很多朋友可能设计了一个小类库,这个类图提高了一个接口,然后由调度器调度所有注册的接口类型,我就是其中之一,随着接触的开源项目越来越多,我的某些开发习惯受到了影 ...