AIX paging space过分的分析与解决.docx

上传人:b****5 文档编号:7661064 上传时间:2023-01-25 格式:DOCX 页数:13 大小:86.08KB
下载 相关 举报
AIX paging space过分的分析与解决.docx_第1页
第1页 / 共13页
AIX paging space过分的分析与解决.docx_第2页
第2页 / 共13页
AIX paging space过分的分析与解决.docx_第3页
第3页 / 共13页
AIX paging space过分的分析与解决.docx_第4页
第4页 / 共13页
AIX paging space过分的分析与解决.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

AIX paging space过分的分析与解决.docx

《AIX paging space过分的分析与解决.docx》由会员分享,可在线阅读,更多相关《AIX paging space过分的分析与解决.docx(13页珍藏版)》请在冰豆网上搜索。

AIX paging space过分的分析与解决.docx

AIXpagingspace过分的分析与解决

AIX中PagingSpace使用率过高的分析与解决

金源(rollinjin@),硕士

金源,硕士,毕业于复旦大学,主要从事WEB应用的开发,感兴趣的领域包括系统性能调优、WEB2.0的开发、RUP和SOA等。

通过rollinjin@可以和他联系。

简介:

 AIX操作系统中的PagingSpace是很重要的设备,PagingSpace使用率过高将影响系统整体性能,甚至会造成系统挂起。

文中对PagingSpace使用率过高的常见原因进行了分析,并给出了相应的解决方案。

发布日期:

 2006年9月14日

级别:

 初级

访问情况:

 10381次浏览

评论:

 0 (查看 | 添加评论-登录)

平均分(25个评分)

为本文评分

AIX操作系统中PagingSpace是很重要的设备,当系统中PagingSpace使用率过高、系统内存不足时,将影响系统的整体性能,甚至会造成系统的挂起。

针对这种情况,通常可以靠增加PagingSpace来加以缓解;但是当PagingSpace已经相当大,而PagingSpace使用率仍旧居高不下时,则需要通过进一步的分析来找出原因并加以解决。

文中分析了几种PagingSpace使用率持续增长直至过高的常见原因,并给出了相应的解决方案,以确保PagingSpace使用率被控制在安全的范围内。

1PagingSpace的创建原则

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

∙系统实际内存小于64MB,pagingspace=2*RAM;

∙系统实际内存在64MBto256MB之间,PageSpace=RAMsize+16MB;

∙系统实际内存大于256MB,PageSpace=512+(RAM-256)*1.25;

∙当内存超过4GB时,则需要根据实际情况来定,一般可初始3GB,然后观察pagingspace的使用情况,如果使用率超过70%,则需要增加pagingspace。

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

∙创建的数量应尽可能的多;

∙每个PagingSpace的大小应该相同;

∙每个PagingSpace应尽可能的分配在不同的硬盘上。

AIX中可以通过命令lsps-s查看PagingSpace的使用情况。

列TotalPagingSpace给出的是系统总的PagingSpace空间大小,PercentUsed则表示已被占用的PagingSpace的百分比。

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

回页首

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

在AIX系统中,内存可以简单的分为两类:

计算型内存和文件型内存。

类似大量文件类操作,如压缩、数据库的dump/load等操作会大量占用文件型内存。

如果按照系统缺省的配置,文件型内存最多会占用到内存总量的80%,由于文件型内存占用并不主动释放,从而可能造成内存资源的短缺及PagingSpace使用率过高。

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

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

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

随后根据当前的值来确定minperm、maxperm新的参数值,并通过命令vmo及参数p和P来进行设定。

如需将minperm、maxperm的值分别设为15%和30%可用命令vmo-p15-P30来实现。

因为参数maxperm充当的是软限制,所以文件型内存的占用率依旧可以超过maxperm的设定值。

如果需要进行强制限制,则需要将参数strict_maxperm的值设为1,该参数的缺省值为0,但此方法需谨慎使用。

回页首

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

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

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

该命令每m秒钟按降序列出前n个最耗内存进程。

为了便于分析,可以将结果输出到文件中,然后对内容进行分析,从而找出内存泄露的应用。

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

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

回页首

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

在装有数据库的系统环境中,数据库相关参数的设置不当也容易造成PagingSpace的占用率过高。

以DB2为例,因为DB2使用自己的缓冲池进行数据缓存,所以其所能占用的内存量不受参数maxperm的控制,而是由自身的参数值来决定。

数据库占用的内存过多并且不及时释放的话同样会造成PagingSpace使用率的持续增长乃至耗尽,本节中采用DB2的设置为例来对此类情况进行说明。

就PagingSpace使用率而言,DB2的相关参数中需要特别关注的有DB2MEMDISCLAIM、DB2MEMMAXFREE、NUM_POOLAGENTS、ESTORE_SEG_SZ及NUM_ESTORE_SEGS。

其中DB2MEMDISCLAIM、DB2MEMMAXFREE、NUM_POOLAGENTS与DB2中代理的私有内存相关,而ESTORE_SEG_SZ、NUM_ESTORE_SEGS则决定扩展缓冲池的大小。

AIX中,注册变量DB2MEMDISCLAIM指明当程序停止时DB2UDB是否应该释放其占用的全部或部分内存。

DB2MEMDISCLAIM保持缺省值YES,则在DB2MEMMAXFREE的值为空时,程序结束后释放所有相关内存,否则只保留DB2MEMMAXFREE值大小的内存量,该值缺省为8M。

如果DB2MEMDISCLAIM的值被改为NO,则程序结束后内存不会被释放。

NUM_POOLAGENTS指定了DB2中可以保留的空闲代理的最大数目,如果该值过大,将会有大量的内存被空闲代理占用。

如NUM_POOLAGENTS的值为125,DB2MEMMAXFREE的值为8M,在DB2MEMDISCLAIM为YES时将最多有约1G的内存被空闲代理占用。

因此,当PagingSpace使用率偏高时,可以尝试查看DB2MEMDISCLAIM、DB2MEMMAXFREE、NUM_POOLAGENTS的值来确保没有过多的内存被DB2代理所占用。

如果空闲代理占用内存太多,则需要调整DB2MEMMAXFREE、NUM_POOLAGENTS的值来削减。

DB2MEMDISCLAIM、DB2MEMMAXFREE的值可用db2set命令来查看和设定;NUM_POOLAGENTS的值则可以通过以下步骤来查看和修改:

DB2中除了主缓冲池之外还经常用到扩展缓冲池,扩展缓冲池的大小也是决定内存使用量的一个重要因素。

扩展缓冲池(EXTENDEDSTORAGE)充当的是缓冲池中被换出页的辅助缓存,它的存在可以减少I/O操作,提高查询速度。

通常扩展缓冲池占用的内存不会主动释放,因此如果扩展缓冲池过大,随着时间的增加、缓冲池占用的内存量的不断增长,有相当大的可能造成内存资源的短缺、PagingSpace使用率过高。

扩展缓冲池的大小是由参数ESTORE_SEG_SZ、NUM_ESTORE_SEGS共同决定的,通过以下命令可以查看它们的值:

扩展缓冲池最多占用内存的计算方式如下:

假如系统中共有3个配置相同的DB,ESTORE_SEG_SZ的值为16000,NUM_ESTORE_SEGS的值为65,页面大小为4K,则扩展缓冲池最多可占用的内存为:

ESTORE_SEG_SZ、NUM_ESTORE_SEGS的参数值设定可以通过如下命令来实现:

DB2中还有其他一些参数决定着内存的使用情况,但是当发现内存占用后不释放的情况时,可以考虑首先查看本节中提到的相关参数。

对于其他的数据库,同样也需要注意一些类似参数值的设置,避免造成对内存的过量占用,从而造成对系统整体性能的影响。

回页首

5结束语

文中针对AIX中PagingSpace使用率过高的问题,分别从文件型内存、应用程序内存泄露和数据库参数配置三个方面进行了分析,并给出了相关的解决方法。

AIX操作系统中PagingSpace是很重要的设备,当系统中PagingSpace使用率过高、系统内存不足时,

将影响系统的整体性能,甚至会造成系统的挂起。

针对这种情况,通常可以靠增加PagingSpace来加

以缓解;但是当PagingSpace已经相当大,而PagingSpace使用率仍旧居高不下时,则需要通过进一

步的分析来找出原因并加以解决。

文中分析了几种PagingSpace使用率持续增长直至过高的常见原因,

并给出了相应的解决方案,以确保PagingSpace使用率被控制在安全的范围内。

1PagingSpace的创建原则

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

系统实际内存小于64MB,pagingspace=2*RAM;

系统实际内存在64MBto256MB之间,PageSpace=RAMsize+16MB;

系统实际内存大于256MB,PageSpace=512+(RAM-256)*1.25;

当内存超过4GB时,则需要根据实际情况来定,一般可初始3GB,然后观察pagingspace的使用情况,如果使用率超过70%,则需要增加pagingspace或把OS中的min_perm%,max_perm%和max_client%参数调小一点

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

创建的数量应尽可能的多;

每个PagingSpace的大小应该相同;

每个PagingSpace应尽可能的分配在不同的硬盘上。

AIX中可以通过命令lsps-s查看PagingSpace的使用情况。

列TotalPagingSpace给出的是系统总的PagingSpace空间大小,PercentUsed则表示已被占用的PagingSpace的百分比。

eg:

#lsps-s

TotalPagingSpace  PercentUsed

     16384MB              1%

 

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

#lsps-a

PageSpace     PhysicalVolume  VolumeGroup   Size%UsedActive Auto Type

hd6            hdisk0           rootvg      16384MB    1  yes  yes   lv

 

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

 

在AIX系统中,内存可以简单的分为两类:

计算型内存和文件型内存。

类似大量文件类操作,如压缩、

数据库的dump/load等操作会大量占用文件型内存。

如果按照系统缺省的配置,文件型内存最多会占

用到内存总量的80%,由于文件型内存占用并不主动释放,从而可能造成内存资源的短缺及PagingSpace

使用率过高。

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

TopasMonitorforhost:

    hostname               EVENTS/QUEUES   FILE/TTY

FriJul3113:

15:

392009  Interval:

 2        Cswitch   1489 Readch 2896.8K

                                               Syscall   7341 Writech  17338

Kernel   1.2  |#                          | Reads      327 Rawin        0

User    18.0  |######                     | Writes      13 Ttyout     373

Wait    13.4  |####                       | Forks        0 Igets        0

Idle    67.5  |####################       | Execs        0 Namei       33

                                               Runqueue   1.5 Dirblk       0

Network KBPS  I-Pack O-Pack  KB-In KB-Out Waitqueue  0.0

en2      2.5     8.0    4.0    1.3    1.2

en0      1.1     2.0    2.0    0.4    0.7 PAGING          MEMORY

lo0      0.0     0.0    0.0    0.0    0.0 Faults     174 Real,MB   7808

                                               Steals       0 %Comp    83.3

Disk   Busy%    KBPS    TPSKB-ReadKB-Writ PgspIn       0 %Noncomp  2.5

hdisk3  27.5  2924.0  322.0 2910.0   14.0 PgspOut      0 %Client   3.2

hdisk0   1.0     4.0    1.0    2.0    2.0 PageIn       1

hdisk1   0.5     2.0    0.5    0.0    2.0 PageOut      1 PAGINGSPACE

dac0     0.0     0.0    0.0    0.0    0.0 Sios         2 Size,MB  16384

dac0-utm 0.0     0.0    0.0    0.0    0.0                  %Used     0.6

dac5     0.0  2924.0  322.0 2910.0   14.0 NFS(calls/sec) %Free    99.3

dac5-utm 0.0     0.0    0.0    0.0    0.0 ServerV2      0

dac2     0.0     0.0    0.0    0.0    0.0 ClientV2      0  Press:

dac4     0.0     0.0    0.0    0.0    0.0 ServerV3      0  "h"forhelp

cd0      0.0     0.0    0.0    0.0    0.0 ClientV3      0  "q"toquit

dac4-utm 0.0     0.0    0.0    0.0    0.0

hdisk2   0.0     0.0    0.0    0.0    0.0

dac2-utm 0.0     0.0    0.0    0.0    0.0

Name           PID CPU% PgSpOwner

oracle      438598 22.1  7.2oracle

oracle      741490  3.6  5.5oracle

topas       975296  0.3  2.1root

oracle      897480  0.0  4.2oracle

hats_nim    225330  0.0  1.8root 

aioserve    242162  0.0  0.1root 

oracle      901544  0.0  4.2oracle

gil          28972  0.0  0.1root

aioserve    315456  0.0  0.1root 

aioserve    118860  0.0  0.1root 

aioserve    381290  0.0  0.1root

aioserve    323656  0.0  0.1root 

hatsd       151846  0.0  8.2root 

oracle      188724  0.0  7.1oracle

如果文件型内存所占比例很高,而PagingSpace使用率居高不下时,可以通过降低minperm、maxperm的

参数值来进行调优,减少文件型内存可占用的份额。

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

是30%和80%。

#vmo-a

cpu_scale_memp=8

data_stagger_interval=161

defps=1

force_relalias_lite=0

framesets=2

htabscale=n/a

kernel_heap_psize=4096

large_page_heap_size=0

lgpg_regions=0

lgpg_size=0

low_ps_handling=1

lru_file_repage=1

lru_poll_interval=10

lrubucket=131072

maxclient%=10

maxfree=1088

maxperm=192213

maxperm%=10

maxpin=1613727

maxpin%=80

mbuf_heap_psize=4096

memory_affinity=1

memory_frames=1998848

memplace_data=2

memplace_mapped_file=2

memplace_shm_anonymous=2

memplace_shm_named=2

memplace_stack=2

memplace_text=2

memplace_unmapped_file=2

mempools=0

minfree=960

minperm=96106

minperm%=5

nokilluid=0

npskill=32768

npsrpgmax=262144

npsrpgmin=196608

npsscrubmax=262144

npsscrubmin=196608

npswarn=131072

num_spec_dataseg=0

numpsblks=4194304

page_steal_method=0

pagecoloring=n/a

pinnable_frames=637301

pta_balance_threshold=n/a

relalias_percentage=0

rpgclean=0

rpgcontrol=2

scrub=0

scrubclean=0

soft_min_lgpgs_vmpool=0

spec_dataseg_int=512

strict_maxclient=1

strict_maxperm=0

v_pinshm=1

vm_modlist_threshold=-1

vmm_fork_policy=1#

说明:

(1)minperm%

如果由文件页面占有的实际内存的百分比低于这个级别,则页面替换算法既替换文件页面也替换计算页面,而不管repagerate。

#vmo-a|grepminperm%

minperm%=20

(2)maxperm%

如果由文件页面占有的实际内存的百分比高于这个级别,则页面替换算法仅替换文件页面。

#vmo-a|grepmaxperm%

maxperm%=80

(3)maxclient%

如果由文件页面占有的实际内存的百分比高于这个级别,则页面替换算法仅替换客户机页面。

#vmo-a|grepmaxclient%

maxclient%=80

这三个参数,可以根据内存总量大小,进行适度调节。

计算型内存与文件型内存,在实际的应用中,

需要遵循以下一些原则(这些原则是自己归纳的):

    1.使用的文件型内存百分比+使用的计算型内存百分比<100%

    2.计算型内存中的pinnedmemory设置要合理,即sga大小要设置合理,要留一部份给OS,OS也需要pinnedmemory.当系统资源紧张时,OS的pinnedmemory具有最高的优先级.

    3.保证系统非pinned计算型memory有一个合理的成长空间,这部份主要是给ORACLEPGA使用,当连接数增长过

      快时,此内存的使用增长也相当的明显,而此增长很有可能会导致操作系统的交换。

当系统的使用的文件型内存百分比+使用的计算型内存百分比>=100%,系统便开始产生交换,系统的PAGINGSPACE会持续的增长,影响到产品库的安全。

    恰当的设置OS内存参数,控制操作系统的交换,可以减少很多系统不稳定的情况发生。

比如说操作系统执行重启命令都执行不了:

    shutdown-Fr

当由文件页面占有的实际内

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1