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中才能找到,这种情况叫做软页面错误。
最新文章
- android 自定义通知栏
- jquery-懒加载技术(简称lazyload)
- 2 、Linux基本命令-ls-pwd-cd-date-hwclock
- php strtotime 和 date 日期操作
- android webview 访问https页面 SslError 处理
- [转] 深入剖析 linux GCC 4.4 的 STL string
- iOS开发--汉字转成没有声调也没有空格的拼音
- vimtutor基础教程
- C++对象模型的那些事儿之五:NRV优化和初始化列表
- 启动两个tomcat服务,以及使用nginx代理实现访问
- Python selenium中注入并执行Javascript语句
- 你可能不知道的printf
- k8s之创建etcd集群
- php数组函数有哪些操作?php数组函数的应用
- dispatch_queue_set_specific可重入的gcd
- sqli-labs(四)
- JFrame添加组件
- 天河2号-保持使用yhrun/srun时连接不中断 (screen 命令教程 )
- angularjs component
- vue-awesome-swiper插件
热门文章
- HTTP学习笔记(一)报文和连接管理
- RobotFramework-Selenium2Library--关键字
- Hdu3787
- windows平台下为Nginx反向代理(负载均衡)使用openssl增加HTTPS/SSL功能。
- Python中optparse模块使用浅析
- jquery,smarty,dedecms的插件思路------dede未实践
- os引导程序boot 在根目录区寻找os加载程序文件loader 对应的根目录条目
- 具体解释TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)
- Spring IOC源代码具体解释之容器依赖注入
- ScrollView分析