设置首页  |   加入收藏  |  联系我们   
您的位置: 主页>Linux知识>Linux程序设计>正文
AIX 中Paging Space使用率过高分析与解决
文章来源:IBM DW中国   编辑:  发布时间:2007-11-01

AIX 操作系统中的 Paging Space 是很重要的设备,Paging Space 使用率过高将影响系统整体性能,甚至会造成系统挂起。文中对 Paging Space 使用率过高的常见原因进行了分析,并给出了相应的解决方案。

AIX操作系统中Paging Space是很重要的设备,当系统中Paging Space使用率过高、系统内存不足时,将影响系统的整体性能,甚至会造成系统的挂起。针对这种情况,通常可以靠增加Paging Space来加以缓解;但是当Paging Space已经相当大,而Paging Space使用率仍旧居高不下时,则需要通过进一步的分析来找出原因并加以解决。文中分析了几种Paging Space使用率持续增长直至过高的常见原因,并给出了相应的解决方案,以确保Paging Space使用率被控制在安全的范围内。

1 Paging Space的创建原则

AIX中Paging Space大小确定的指导原则如下:

  • 系统实际内存小于64MB, paging space= 2 * RAM ;
  • 系统实际内存在 64MB to 256MB 之间, Page Space = RAM size + 16MB ;
  • 系统实际内存大于 256MB , Page Space = 512 + ( RAM - 256 ) * 1.25 ;
  • 当内存超过4GB时,则需要根据实际情况来定,一般可初始3GB, 然后观察paging space的使用情况,如果使用率超过70%, 则需要增加paging space 。

此外在创建Paging Space时还应遵循以下原则以提高性能:

  • 创建的数量应尽可能的多;
  • 每个Paging Space的大小应该相同;
  • 每个Paging Space应尽可能的分配在不同的硬盘上。

AIX中可以通过命令lsps -s查看Paging Space的使用情况。列Total Paging Space给出的是系统总的Paging Space空间大小,Percent Used则表示已被占用的Paging Space的百分比。



命令lsps -a可以用来查看Paging Space的分布情况


 

2 文件型内存对Paging Space使用率的影响

在AIX系统中,内存可以简单的分为两类:计算型内存和文件型内存。类似大量文件类操作,如压缩、数据库的dump/load等操作会大量占用文件型内存。如果按照系统缺省的配置,文件型内存最多会占用到内存总量的80%,由于文件型内存占用并不主动释放,从而可能造成内存资源的短缺及Paging Space使用率过高。

命令topas可以用来查看文件型内存占用内存情况,在MEMORY一栏中的%Noncomp显示的是文件型内存的占用百分比。



如果文件型内存所占比例很高,而Paging Space使用率居高不下时,可以通过降低minperm、maxperm的参数值来进行调优,减少文件型内存可占用的份额。

在进行调整前,首先通过命令vmo -a/vmtune -a来查看目前的参数值;minperm及maxperm的缺省值分别是30%和80%。



随后根据当前的值来确定minperm、maxperm新的参数值,并通过命令vmo 及参数p和P来进行设定。如需将minperm、maxperm的值分别设为15%和30%可用命令vmo -p 15 -P 30来实现。

因为参数maxperm充当的是软限制,所以文件型内存的占用率依旧可以超过maxperm的设定值。如果需要进行强制限制,则需要将参数strict_maxperm的值设为1,该参数的缺省值为0,但此方法需谨慎使用。

3 应用程序内存泄露对Paging Space使用率的影响

应用程序的内存泄露也是造成Paging Space使用率不断增长的另一常见原因,此类情况的解决方法主要是找出内存泄露的应用,然后进行修正或安装补丁。

以下方法可用来找出发生内存泄露的应用:



该命令每m秒钟按降序列出前n个最耗内存进程。为了便于分析,可以将结果输出到文件中,然后对内容进行分析,从而找出内存泄露的应用。

下例中命令svmon -P -t 10 -i 5的结果被输出到文件svmonresult.txt中,该命令每5秒种输出一次最耗内存的前10个进程。



找出发生内存泄露的应用后可自行进行修正或查找相关的补丁进行安装。

4 数据库参数配置对Paging Space使用率的影响

在装有数据库的系统环境中,数据库相关参数的设置不当也容易造成Paging Space的占用率过高。以DB2为例,因为 DB2 使用自己的缓冲池进行数据缓存,所以其所能占用的内存量不受参数maxperm的控制,而是由自身的参数值来决定。数据库占用的内存过多并且不及时释放的话同样会造成Paging Space使用率的持续增长乃至耗尽,本节中采用DB2的设置为例来对此类情况进行说明。

就Paging Space使用率而言,DB2的相关参数中需要特别关注的有DB2MEMDISCLAIM、DB2MEMMAXFREE、NUM_POOLAGENTS、 ESTORE_SEG_SZ及NUM_ESTORE_SEGS。其中DB2MEMDISCLAIM、DB2MEMMAXFREE、 NUM_POOLAGENTS与DB2中代理的私有内存相关,而ESTORE_SEG_SZ、NUM_ESTORE_SEGS则决定扩展缓冲池的大小。

AIX中,注册变量DB2MEMDISCLAIM指明当程序停止时DB2 UDB是否应该释放其占用的全部或部分内存。DB2MEMDISCLAIM保持缺省值YES,则在DB2MEMMAXFREE的值为空时,程序结束后释放所有相关内存,否则只保留DB2MEMMAXFREE值大小的内存量,该值缺省为8M。如果DB2MEMDISCLAIM的值被改为NO,则程序结束后内存不会被释放。

NUM_POOLAGENTS指定了DB2中可以保留的空闲代理的最大数目,如果该值过大,将会有大量的内存被空闲代理占用。如 NUM_POOLAGENTS的值为125,DB2MEMMAXFREE的值为8M,在DB2MEMDISCLAIM为YES时将最多有约1G的内存被空闲代理占用。


Tags:分析 解决 内存 Space Paging 使用率 占用 文件 系统

Google
 
上一篇: Apache和Subversion 搭建安全CVS   下一篇: autoconf 和automake生成Makefile文件
【返回顶部】 【打印】 【大】 【中】 【小】 【关闭】

 我来说两句
用户名: 新注册) 密码: 匿名评论 [论坛讨论]
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 相关文章
 热门文章

 
版权所有  2005-2006  Linux集中营  闽ICP备07500055号