内存瓶颈: 由于可用内存缺乏导致系统性能下降的现像。

(一)、相关的性能对象

主要考虑内存的页面操作和磁盘的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内存性能分析(二)性能瓶颈的更多相关文章

  1. Windows内存性能分析(一)内存泄漏

    判断内存性能表现主要是为了解决如下两个问题: 1. 当前web应用是否存在内存泄漏,如果有,问题的程度有多大? 2. 如果web应用的代码无法进一步改进,当前web应用所在的服务器是否存在内存上的瓶颈 ...

  2. .NET内存性能分析宝典

    .NET Memory Performance Analysis 知道什么时候该担心,以及在需要担心的时候该怎么做 译者注 **作者信息:Maoni Stephens ** - 微软架构师,负责.NE ...

  3. SQL Server内存性能分析

    内存概念: Working Set = Private Bytes + Shared Memory Working Set:某个进程的地址空间中,存放在物理内存的那一部分 Private Bytes: ...

  4. 2016-03-24:Windows内存泄露分析工具

    参考资料 100%正确的内存泄漏分析工具 ------ tMemMonitor (TMM)

  5. 通过Windows常见性能计数器分析服务器性能瓶颈

    转载 http://www.cnblogs./junzhongxu/archive/2011/02/15/1954889.html 监测对象 Ø System(系统) l %Total Process ...

  6. perfview微软开源的cpu以及内存性能分析工具

    perfview 是一个强大的分析工具,能用来分cpu,内存,磁盘io...多种指标,使用简单,功能强大 用来分析windows应用的性能问题,是一个很不错的选择 下载地址 https://githu ...

  7. 记一次vue长列表的内存性能分析和优化

    好久没写东西,博客又长草了,这段时间身心放松了好久,都没什么主题可以写了 上周接到一个需求,优化vue的一个长列表页面,忙活了很久也到尾声了,内存使用和卡顿都做了一点点优化,还算有点收获 写的有点啰嗦 ...

  8. WINDOWS WPA性能分析

    http://r12f.com/posts/introduction-to-wpa-1-why-it-is-slow/ http://www.freebuf.com/column/138862.htm ...

  9. 使用PerfView监测.NET程序性能(二):Perfview的使用

    在上一篇博客中,我们了解了对Windows及应用程序进行性能分析的基础:Event Trace for Windows (ETW).现在来看看基于ETW的性能分析工具——Perfview.exe Pe ...

随机推荐

  1. 谈 API 的撰写 - 总览

    背景 之前团队主要的工作就是做一套 REST API.我接手这个工作时发现那些API写的比较业余,没有考虑几个基础的HTTP/1.1 RFC(2616,7232,5988等等)的实现,于是我花了些时间 ...

  2. IP、操作系统、移动OS

    IP IP地址 = 网络地址 + 主机地址/IP地址 = 网络地址 + 子网地址 + 主机地址. DNS :进行域名解析的服务器.             比如,sina.com(是域名).其实是一个 ...

  3. java:注解(一)

    什么是注解 注解(Annotation),也叫(metadata)元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类.接口.枚举是在同一个层次.它可以声明在包.类.字段.方法. ...

  4. frame框架及其实例

    框架概念 : 谓框架便是网页画面分成几个框窗,同时取得多个 URL.只需要 <FRAMESET> <FRAME> 即可,面所有框架标记需要放在一个总起的 html 档,这个档案 ...

  5. 【Android】getActionBar()为null的解决方法总结

    前言 在使用 ActionBar的时候,有时候会爆出空指针异常,这是由于应用没有获取到 ActionBar 导致的,而导致应用没有获取到 ActionBar 的原因比較多.所以我们以下就来总结一下 A ...

  6. yosemite开启HAXM硬件加速执行安卓虚拟机

    android sdk安装HAXM发现不能正常执行 $ kextstat | grep intel 发现无进程执行 $ sudo kextload –b com.intel.kext.intelhax ...

  7. xml.etree.ElementTree模块的封装

    转载:https://www.cnblogs.com/hongten/p/hongten_python_xml_etree_elementtree.html 1 # -*- coding: utf-8 ...

  8. 为什么阿里巴巴不建议在for循环中使用"+"进行字符串拼接

    字符串,是Java中最常用的一个数据类型了.关于字符串的知识,作者已经发表过几篇文章介绍过很多,如: Java 7 源码学习系列(一)--String 该如何创建字符串,使用" " ...

  9. Java编码辅助工具:Lombok —— 避免重复臃肿的代码,提高效率

    在项目开发过程中,经常会涉及到一些调整很少但又必不可少的环节,比如实体类的Getter/Setter方法,ToString方法等.这时可以使用Lombok来避免这种重复的操作,减少非核心代码的臃肿,提 ...

  10. sed: -e expression #1, unknown option to `s'解决办法

    报错如下: sed: -e expression #1, char 13: unknown option to `s' 需要替换的行为: monitor.url=http://192.168.25.1 ...