Kernel.shmmax
Oracle SGA 由共享内存组成,如果错误设置 SHMMAX可能会限制SGA 的大小,SHMMAX设置不足可能会导致以下问题:ORA-27123:unable to attach to shared memory segment,如果该参数设置小于Oracle SGA设置,那么SGA就会被分配多个共享内存段。这在繁忙的系统中可能成为性能负担,带来系统问题。Oracle建议Kernel.shmmax最好大于sga,以让oracle共享内存区SGA在一个共享内存段中,从而提高性能.
Kernel.shmall
表示系统共享内存总大小,以页为单位.一个32位的Linux系统,8G的内存,可以设置kernel.shmall = 2097152,即为:2097152*4k/1024/1024 = 8G,就是说可用共享内存一共8G,这里的4K是32位操作系统一页的大小,即4096字节.
Kernel.shmmni
表示系统中共享内存段的最大数量。系统默认是4096,一般无需修改,在SUN OS下还有Kernel.shmmin参数,表示共享内存段最小尺寸.
以上各参数的配置可以通过修改/proc/sys/kernel/shmmax来实现,如:
# echo 1073741824 > /proc/sys/kernel/shmmax,但系统重新启动后会复位,要想修改永久生效需要在/etc/sysctl.conf文件中添加Kernel.shmmax=1073741824,这里设置的是1G.
-- The End --