AIX虚拟内存分页替换的原理及Oracle数据库服务器swap空间满的分析
一、AIX虚拟内存分页替换的原理如下:
分页替换守护进程lurd选择非计算性分页还是计算性分页进行替换,主要取决于四个参数:minperm,maxperm,numperm和lru_file_repage。其中前三个参数可以从vmstat -v命令取得,第四个参数可以从vmo命令取得。
参数之间如何配合工作的具体过程,可以参考以下文档:
http://blog.youkuaiyun.com/zhaoyangyao888/article/details/50357754
P570-4LP2:/>vmstat -v
5242880 memory pages
4968434 lruable pages
81520 free pages
8 memory pools
433263 pinned pages
80.0 maxpin percentage
20.0minperm percentage
80.0 maxperm percentage
67.9 numperm percentage
3377373 file pages
0.0 compressedpercentage
0 compressed pages
67.6 numclient percentage
80.0 maxclient percentage
3361895 client pages
0 remote pageouts scheduled
48338 pending disk I/Os blockedwith no pbuf
2795151 paging space I/Os blockedwith no psbuf
2228 filesystem I/Os blockedwith no fsbuf
4207 client filesystem I/Osblocked with no fsbuf
38346 external pager filesystemI/Os blocked with no fsbuf
0 Virtualized PartitionMemory Page Faults
0.00 Time resolving virtualizedpartition memory page faults
二、关于数据库服务器swap空间满的分析:
1. 目前的内存参数如下:
P570-4LP2:/> vmo -L minperm% -L maxperm%-L maxclient% -L lru_file_repage
NAME CUR DEF BOOT MIN MAX UNIT TYPE
DEPENDENCIES
--------------------------------------------------------------------------------
lru_file_repage 1 1 1 0 1 boolean D
--------------------------------------------------------------------------------
maxclient% 80 80 80 1 100 % memory D
maxperm%
minperm%
--------------------------------------------------------------------------------
maxperm% 80 80 80 1 100 % memory D
minperm%
maxclient%
--------------------------------------------------------------------------------
minperm% 20 20 20 1 100 % memory D
maxperm%
maxclient%
--------------------------------------------------------------------------------
数据库的sga包含的分页属于工作存储分页,是永远属于计算性内存分页的。由于lru_file_repage参数配置为1,当numperm介于minperm和maxperm之间时,系统会根据重新分页表的信息决定对那些分页进行分页替换,如果非计算性分页的重新分页速度比计算性分页的重新分页速度高,那么 AIX 内核将选择计算性的分页和非计算性的分页进行操作。所以在这种情况下有可能将sga分页替换到swap空间。所以如果将lru_file_repage设置为0,应该就不会有问题了。