对暂存内存的支持

AIX使内存页始终保持在真实内存中。 这种机制称为固定内存。

暂存某个内存区域禁止调页程序替换暂存内存区域后面的页。 定义在系统空间或用户空间的内存区域都可以暂存。 内存区域暂存之后,访问那个区域不会导致缺页故障,直到该区域在后来取消暂存。 当一部分内核保持暂存时,许多区域是可调页的,仅仅在被访问的同时才会暂存起来。

暂存部分内存的优点是,当访问一个暂存的页面时可以检索该页而不需要执行页面替换算法。 太多的暂存内存页面会带来负面影响,即可能会增加未暂存页面的调页活动,这将使性能下降。

vmo maxpin% 可调参数可以用来调整可以固定的内存量。 maxpin% 可调参数指定了可以固定的实内存的最大百分比。

注: 由于内核必须能够锁定某些内核数据量,因此减小 maxpin% 可调参数的值可能会导致功能问题,建议不要这样做。

用户应用程序可以通过几个不同的机制固定内存。 应用程序可以使用 plock()mlock()mlockall() 子例程来固定应用程序内存。

应用程序可以通过对 shmctl() 子例程指定 SHM_LOCK 选项来显式地锁定共享内存区域。 应用程序还可以通过将 SHM_PIN 标志指定为 shmget()来锁定共享内存区域。