ORACLE的Linux内核参数设置:
服务器内存为4G的情况下
修改/etc/sysctl.conf文件 (ROOT账户)
kernel.shmmax = 2147483648
//公式:2G*1024*1024*1024=2147483648(字节)
//表示最大共享内存段,一般为物理内存的一半(单位:字节)。 shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降 。
//所以一般来说,1-4G 的物理内存,可以直接设置shmmax 为最大物理内存即可,那么SGA 肯定在一个共享内存段中,32Bit Linux 系统物理内存大于4G 的设置为4G 即可 。总之,一般设置shmmax >=SGA (32Bit 系统是否支持到1.7G 以上SGA 需要注意) 。如果是64Bit 的Linux 操作系统,shmmax 设置为大于SGA_MAX_SIZE 即可。
kernel.shmmni=4096
//表示共享内存段的最大数量,固定大小4096KB足够(由于32位操作系统默认一页为4K)。
kernel.shmall=1048576
//公式:4G*1024*1024/4K = 1048576(页)
//表示所有共享内存页大小(单位:页)。Linux 共享内存页大小为4KB, 共享内存段的大小都是共享内存页大小的整数倍。
// 一个共享内存段的最大大小是16G,那么需要共享内存页数是 16GB/4KB=16777216KB/