测试内存是否够用的软件,如何判断物理内存是否够用

原标题:如何判断物理内存是否够用

内存方面主要关注两个问题,第一:物理内存够不够用;第二:有没有内存泄露。

物理内存够不够用,关注的是物理内存与Paging Space之间的交换情况。内存有没有泄露,需要长期关注进程所占用的内存分页(包括物理内存中的分页和Paging Space中的分页)。

这一节介绍在验证物理内存够不够用的过程中,观察的几个指标。

Paging Space In/Out

这个指标是判定物理内存够不够用的最重要的指标。

1. 获取来源

Nmon PAGE Sheet:pgsin、pgsout

topas:PgspIn、PgspOut

2. 指标说明

PgspIn:每秒从Paging Space读入物理内存的4K分页的数量

PgspOut:每秒写到Paging Space的4K分页的数量

物理内存够用的情况下,这两个指标都是0。

如果这两个指标长期不为0,则一定是物理内存不足。

如果偶尔不为0,不一定是物理内存不足,需要具体问题具体分析。例如:一台服务器上白天做交易,晚上做批处理。白天做交易的时候交易进程占用90%的物理内存,晚上做批处理的时候,批处理进程进入物理内存,并把交易进程的内存挤到Paging Space里面。到第二天白天的时候,交易进程进入物理内存,把批处理的进程挤到Paging Space里面。这个场景下,物理内存是够用的,但每天有两个时间段PgspIn/Out不为0。

另外,不要把PageIn/PageOut和PgspIn/Out搞混了。

PageIn/PageOut是内存与文件系统之间的读写,是正常的内存缺页。CPU要数据,内存里面没有,就会产生内存缺页,然后去磁盘里面读这个页,对于程序来说,这是再正常不过的事,比如说,程序刚启动的时候,内存里面肯定是没有读进来什么数据。

PgspIn/Out是内存与Paging Space之间的读写。

3. 举例

正常情况下,PgspIn/Out(pgspace)是0,PageIn/PageOut(filesystem)是非0。

2fd21c899c45e819e4e9684df89113f2.png

00ab39d4f2749fb994fde6eef5d8e41d.png

物理内存不足的情况下,PgspIn/Out是长期非0

9815de029b7a227070a97f9f469353dc.png

而此时,从内存利用率的角度也一定是有问题的,如图

698e7b1b5211c16c473dca8db1b05656.png

内存利用率(计算内存,Computational Memory)

有人看到内存使用率是99%,就认为内存用满了,并没有区分内存分页是什么类型,这样武断的说内存用满了是不科学的。在AIX上主要关注的是计算内存占整个物理内存的百分比,linux上主要关注的是active内存占整个物理内存的百分比。

1. 获取来源

Nmon MEMNEW Sheet:Process%+System%

topas:% Comp

2. 指标说明

从Nmon来看,简单来说,看MEMNEW中紫红色的这条线,就是计算内存的消耗。而黄色的部分(FScache)也就是读写文件的缓存,相当于非计算内存。

16792d7e19b02b48d85a9100880dec2e.png

如上图,System%、Process%和FScache三者将内存占满是比较正常的情况,尽多占用内存是提升性能的有效途径,也是很多操作系统的设计理念。

类似的,在CPU使用中,一些场景也有尽多使用CPU的理念,比如银行业晚上跑批处理业务,就要尽多消耗CPU,以期用最少的时间把批处理跑完,不要影响第二天早上的开门营业。

但System%+Process%把内存几乎占满就要看看Paging Space In/Out指标了,如下图。

c6d62c9c219759e0659b721823bf2fa3.png

测试过程中FScache不断上升也没关系

944c6aec12370a4361d8bc170e3ffb26.png

Topas可直接看Comp这个指标

89e6f0123560f9e9ae3f52aeff2f6393.png

Paging Space利用率

这个指标经常有人提到,但我从来没看过这个指标。

1. 获取来源

Nmon MEM Sheet:1-Virtual free(MB)/Virtual total(MB)

topas:PAGING SPACE: %Used

2. 指标说明

如果在某一场的测试当中,持续观察这个指标,发现这个指标是持续增长的,也能说明内存不足。如果不是连续观察,只能说明历史上有用到过Paging Space,至于现在有没有内存不足就不知道了。

杨建旭

现任中国人民银行清算总中心性能测试团队负责人,高级技术经理。具有Linux/FreeBSD/Windows/MacOS/iOS等平台的开发经验,并在自动化测试、性能测试方面有深入的研究,对银行业系统(z/OS、AIX、DB2、Oracle、WAS、MQ等),尤其是虚拟化趋势下银行业系统的性能测试、问题分析、性能调优有丰富的经验。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值