生产环境下遇到的aix内存问题分析

应用服务器从源库中读取数据再导入到目标数据库,已经好几天执行失败了,从程序的日志中可以看到SQL30081N的错误,运程服务器已经中断连接,今天发现db2diag.log首次报出了OS级别的ErrorSIGNALDANGER,网上说是page space不足了。经过学习aix的内存机制,写下心得:

 

Aix通过页来管理内存 VMM的职责

页映射物理地址,也映射虚拟内存

Page space(虚拟内存,交换空间)是用来存放暂时不需要CPU处理的数据的地方。安装系统时自动规定逻辑卷hd6存放page space

先把页分2种,工作存储分页(逻辑数据,进程数据,堆栈,共享内存,内核数据)

进程要退出时释放掉

若被修改过,需要页交换时(为其他进程等让位置),放到page space

              永久存储分页(文件数据,缓存在内存中的文件)

若被修改过,需要交换时,写入到文件系统中,若未修改,直接抛弃

永久存储分页

分为客户端client  JFS2文件系统   现在文件系统都为JFS2

     非客户端 JFS 文件系统

 

以上是根据缓存的类型分出的页面淘汰方式

 

Aix有自己的页面类型标准如下:

计算型:comp    ———————— 都是工作存储分页   工作存储分页也都是计算型的

非计算性(也被称为文件型)noncomp :正在进行读取 写入的文件数据

注:永久存储分页可以使计算型的,也可以是非计算型的

 

涉及到的查询系统性能命令

#lsps –a

#svmon 虚拟内存快照

#vmstat

#topas

可以发现如下关系 颜色相同为一样的:

# svmon -G

               size                 inuse        free         pin     virtual

memory      8388608(物理内存)     8162617      225991      666479     2540070

pg space    1048576        7317

 

               work        pers        clnt       other

pinin use的子集,固定的)   236541          0           0      429938

in use      2539866(工作存储分页)           0     5622751(客户端分页数)

# lsps -a

Page Space      Physical Volume   Volume Group    Size %Used Active  Auto  Type

hd6             hdisk0            rootvg        4096MB     1   yes   yes    lv

# vmstat

 

System Configuration: lcpu=8 mem=32768MB

 

kthr    memory              page              faults        cpu   

----- ----------- ------------------------ ------------ -----------

 r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa

 1  1 2540111 226003   0   0   0   3    7   0 127 14803 1163  3  1 96  0

 

Avm含义是什么呢

官方解释:

Memory: information about the usage of virtual and real memory. Virtual pages are considered active if they have been accessed. A page is 4096 bytes.
       avm   Active virtual pages.
       fre     Size of the free list. Note: A large portion of real memory is utilized as a cache for file system data. It is not unusual for the size of the free list to remain small.

系统中avm大约9.6G9.6G怎么来的呢?avm 列显示了访问的所有虚拟内存,即使它没有被调出。该页映射到了memory,同时也映射到了page space。所以它比4G还大。

 

# vmstat –v中也看出

71.1 numperm percentage非计算性分页的数目占得挺高

71.1 numclient percentage

5612632 client pages

 

 

参考资料:http://www.ibm.com/developerworks/cn/aix/library/au-cn-pagingspace/

参考资料中命令topas有介绍noncomp使用率的问题

 

总结下:系统中文件内存还是偏大的,从topas中可以看出,性能分析命令也可以看得出来,aix系统认为内存闲着也没用,当缓存使吧,程序中断后,也没释放,下次再导入数据时aix不会那么傻吧,除了必要的页换到pagespace,为了更大的内存,应该会抛弃不必要的页吧,现在打算增大pagespace,去看看程序运行如何。

你可能感兴趣的:(内存,分页,AIX,page,休闲,space)