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

(一)、相关的性能对象

主要考虑内存的页面操作和磁盘的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. 常见函数strlen、strcmp、strstr原型实现

    数组元素的结束符为'\0'.串的结束符为NULL 一.strlen #include <iostream> using namespace std; long h_strlen(const ...

  2. UNP学习笔记(第十八章 路由套接字)

    路由套接字上支持3种类型的操作 1). 进程能通过写路由套接字向内核发消息. 2). 进程能通过路由套接字从内核读消息. 3). 进程可以用sysctl函数得到路由表或列出所有已配置的接口. 数据链路 ...

  3. url删除指定字符

    var str = "http://www.xxx.com/?pn=0"; // 删除指定字符 pn=0 // 我将这个字符串里所可能想到的各种情况都列举出来 var a = [ ...

  4. 获取服务器classes根路径

    /** * 获取web应用路径 * @Description : 方法描述 * @Method_Name : getRootPath * @return * @return : String * @C ...

  5. Oracle 优化器

    http://blog.csdn.net/it_man/article/details/8185370一.优化器基本知识   Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执 ...

  6. 命令行编译sass

    一.安装ruby1.需要的软件设备: 2.安装过程:点击上图“应用程序”安装即可,注意安装过程中其中三项都需要打上勾.如若没有三项都打上勾则需要修改环境变量中的path路径后添加一个分号. 3.打开c ...

  7. caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--03--20171103

    classification ./examples/cifar10/cifar10_full.prototxt ./examples/cifar10/cifar10_full_iter_70000.c ...

  8. java中异或加密

    static String simple_xor(String base_data, String encrypt_key) throws UnsupportedEncodingException { ...

  9. iis出现HTTP 错误 403.14 - Forbidden Web问题

    找到"目录浏览",并"应用"

  10. nginx教程2:日志

    主要有两种:access_log(访问日志) 和 error_log(错误日志). access_log 访问日志 access_log 主要记录客户端访问 Nginx 的每一个请求,格式可以自定义. ...