为什么oracle在AIX有空闲内存的情况下使用SWAP

这是由于oracle在AIX上使用shmget()函数调用内存,在 lock_sga=true的情况下会指定 SHM_PIN 这个PIN 共享内存的flag,但是由于vmo 参数 v_pinshm=0,所以默认不启用SHM_PIN flag,这会导致oracle可能在aix仍有空闲内存的情况下使用Pgsp paging space:

如何诊断Oracle在AIX上是否使用Pgsp?

svmon -G
svmon -U oracle

 

关于 v_pinshm IBM官方有最权威的解释:

The v_pinshm parameter
When you set the v_pinshm parameter to 1, it causes pages in shared memory segments to be pinned by VMM, if the application, which does the shmget(), specifies SHM_PIN as part of the flags. The default value is 0.

Applications can choose to have a tunable which specifies whether the application should use the SHM_PIN flag (for example, the lock_sga parameter in Oracle 8.1.5 and later). Avoid pinning too much memory, because in that case no page replacement can occur. Pinning is useful because it saves overhead in async I/O from these shared memory segments (the async I/O kernel extension is not required to pin the buffers).

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/fs_buff_tuning.htm

 

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *