Windows内存性能分析(二)性能瓶颈
内存瓶颈: 由于可用内存缺乏导致系统性能下降的现像。
(一)、相关的性能对象
主要考虑内存的页面操作和磁盘的I/O操作,需要考虑如下性能对象:
Memory性能对象: 用于分析整个系统的内存瓶颈问题。
Process性能对象: 分析某个应用的内存性能瓶颈问题。
Physical Disk性能对象,与内存性能瓶颈被动相关。
(二)、几个重要性能计数器
Available MBytes/KBytes: 显示当前系统可用的内存数值,如果经常性的可用内存小于物理内存的一半,说明系统负担有点儿重,可以考虑增加内存。
这是我电脑的可用内存,2G的物理内存,说明也需要增加内存了。

Pages/sec、Pages Input/sec、Page Reads/sec、Page Faults/sec: 这几个计数器在Memory和Process都有,代表整个内存和单个进程的页面操作信息。用于分析整个系统或关注的程序使用内存的状况。
Pages/sec: 每秒pages Input(硬页面错误发生时,程序从虚拟内存读取页面)和Page Output(程序向虚拟内存写入页面)的和。
Page Faults/sec: 硬页面错误次数和软页面错误次数相加的和。
Page Reads/sec: 硬页面错误发生时,程序读取虚拟内存的次数。
(三)、可能存在内存瓶颈的几种情况
1. 如果Page Reads/sec 平均值经常性的超过5。下图是我电脑上的计数器值,目前看来值还比较小,说明不存在内存性能瓶颈。

2. 如果Pages Input/sec比较大,平均值达到10或者更多。下图说明不存在内存性能瓶颈。

3. 如果Pages Input/sec 除以 Page Faults/sec大于50%。将上图的平均值与下图的平均值进行对比,说明不存在内存性能瓶颈。

4. 如果Page Reads/sec 大于 Pages Input/sec,将图4与图2进行对比,说明不存在内存性能瓶颈。

说明:
1. Page Reads/sec 与Pages Input/sec的区别: 前者是指每秒读取虚拟内存的次数,后者是指每秒从虚拟内存读取的页面数。
程序的代码和数据可能存储在工作集(A)、虚拟内存(B)、内存的其他地方(C)。从工作集(A)读取速度最快,从虚拟内存(B)读取速度最慢。
2. 硬页面错误: 如果程序所需的数据在A中找不到,必须在B中才能找到,这种情况叫做硬页面错误。
3. 软页面错误: 如果程序所需的数据在A中找不到,必须在C中才能找到,这种情况叫做软页面错误。
Windows内存性能分析(二)性能瓶颈的更多相关文章
- Windows内存性能分析(一)内存泄漏
判断内存性能表现主要是为了解决如下两个问题: 1. 当前web应用是否存在内存泄漏,如果有,问题的程度有多大? 2. 如果web应用的代码无法进一步改进,当前web应用所在的服务器是否存在内存上的瓶颈 ...
- .NET内存性能分析宝典
.NET Memory Performance Analysis 知道什么时候该担心,以及在需要担心的时候该怎么做 译者注 **作者信息:Maoni Stephens ** - 微软架构师,负责.NE ...
- SQL Server内存性能分析
内存概念: Working Set = Private Bytes + Shared Memory Working Set:某个进程的地址空间中,存放在物理内存的那一部分 Private Bytes: ...
- 2016-03-24:Windows内存泄露分析工具
参考资料 100%正确的内存泄漏分析工具 ------ tMemMonitor (TMM)
- 通过Windows常见性能计数器分析服务器性能瓶颈
转载 http://www.cnblogs./junzhongxu/archive/2011/02/15/1954889.html 监测对象 Ø System(系统) l %Total Process ...
- perfview微软开源的cpu以及内存性能分析工具
perfview 是一个强大的分析工具,能用来分cpu,内存,磁盘io...多种指标,使用简单,功能强大 用来分析windows应用的性能问题,是一个很不错的选择 下载地址 https://githu ...
- 记一次vue长列表的内存性能分析和优化
好久没写东西,博客又长草了,这段时间身心放松了好久,都没什么主题可以写了 上周接到一个需求,优化vue的一个长列表页面,忙活了很久也到尾声了,内存使用和卡顿都做了一点点优化,还算有点收获 写的有点啰嗦 ...
- WINDOWS WPA性能分析
http://r12f.com/posts/introduction-to-wpa-1-why-it-is-slow/ http://www.freebuf.com/column/138862.htm ...
- 使用PerfView监测.NET程序性能(二):Perfview的使用
在上一篇博客中,我们了解了对Windows及应用程序进行性能分析的基础:Event Trace for Windows (ETW).现在来看看基于ETW的性能分析工具——Perfview.exe Pe ...
随机推荐
- vector(可变数组) 用于UDP通信
头文件: #include<vector.h> 然后,声明并初始化vctor数组. vector<char> str(len); 其中len可以是变量或者常量.(其实用常量就 ...
- Oracle 中for update和for update nowait的区别
http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762223.html 1.for update 和 for update nowait 的区 ...
- 通俗的理解java的堆和栈
堆 可以把堆理解为一家餐厅,里面有200张桌子,也就是最多能同时容纳200桌客人就餐,来一批客人就为他们安排一些桌子,如果某天来的客人特别多,超过200桌了,那就不能再接待超出的客人了.当然,进来吃饭 ...
- wpf SplitButton
SplitButton该控件除了本身Button 的功能外,还具有下拉菜单的功能,能够在按键右側加入下拉菜单控件: <SplitButton Content="..." ...
- python3 configparser对配置文件读写
import configparser #read data from conf filecf=configparser.ConfigParser()cf.read("biosver.cfg ...
- 【puppeteer+Node.js】学习
总结了一下有关puppeteer的学习的网站,以后还会继续更新 puppeteer 介绍 Puppeteer是一个通过DevTools Protocol控制headless chromium的高级no ...
- 部署mongodb中需要注意的调参
部署mongodb的生产服务器,给出如下相关建议: 使用虚拟化环境: 系统配置 1)推荐RAID配置 RAID(Redundant Array of Independent Disk,独立磁盘冗余阵列 ...
- erlang中遍历取出某个位置的最大值
例:有这么一个列表,A = [["abc","bds",3],["ssdss","dddx",2],["sfa ...
- JavaScript -- 没事看看
@.delete 原文:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/delete
- IDEA下使用Jetty进行Debug模式调试
过程例如以下: (1)找到选项卡中的 –Run– 然后找到 –Edit Configurations (2)点击下图中绿色的plus–找到Maven点进去 (3)依照下边的方式在Command lin ...