修改 /etc/sysctl.conf 文件之后,执行命令 # sysctl -p 立刻生效

1、kernel.shmmax

     用于定义单个共享内存段的最大值
     shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会
导致需要创建多个共享内存段,这样可能导致系统性能的下降。

 

2、kernel.shmall

    控制共享内存页数。Linux 共享内存页大小为4KB, 共享内存段的大小都是共享内存页大小的整数倍。

    例如:一个共享内存段的最大大小是16G,那么需要共享内存页数是 16GB/4KB=16777216KB/4KB=4194304 (页),也就是64Bit 系统下16GB 物理内存,设置 kernel.shmall = 4194304 才符合要求(几乎是原来设置2097152
的两倍)。这时可以将shmmax 参数调整到 16G 了,同时可以修改SGA_MAX_SIZE 和SGA_TARGET 为 12G(您想设置的SGA 最大大小,当然也可以是2G~14G 等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)。

 

3、kernel.shmmni

     是共享内存段的最大数量(注意这个参数不是 shmmin,是shmmni, shmmin 表示内存段最小大小 ) 。shmmni 缺省值4096 ,一般肯定是够用了。


4、kernel.sem

     是semaphores的缩写,

     查看当前设置
     # cat /proc/sys/kernel/sem
     250 32000 100 128

 

     4个数据分别对应      SEMMSL      250       表示每个信号集中的最大信号量数目
     SEMMNS      32000  表示系统范围内的最大信号量总数目
     SEMOPM     100      表示每个信号发生时的最大系统操作数目
     SEMMNI      128      表示系统范围内的最大信号集总数目

     如当oracle DB初始化参数文件中PROCESSES参数设置较大时,需要调整SEMAPHORES设置
     SEMMSL,应该设置为服务器中各个实例中最大的PROCESSES参数+10,例如,当最大的PROCESSES参数为5000时,SEMMSL应

                     设置为5010。
     SEMMNS,参数应设置为SEMMSL*SEMMNI,接上例SEMMSL为5010,SEMMNS参数应为(5010*128)=641280。
     SEMOPM,参数应设置与SEMMSL参数相同,接上例此处应设置为5010

 

     更改当前SEMAPHORES参数设置:
     # echo "5010 641280 5010 128" > /proc/sys/kernel/sem
     # cat /proc/sys/kernel/sem
        5010 641280 5010 128

     如需启动时自动应用,可在/etc/sysctl.conf增加:
     kernel.sem =5010 641280 5010 128

参考:http://www.cnscn.org/htm_data/20/0905/47739.html

 

5、fs.file-max

     可以分配的文件句柄的最大数目(文件系统最大可打开文件数)

 

6、net.ipv4.ip_local_port_range
     表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

 

7、net.core.rmem_default和net.core.rmem_max

     默认和最大的TCP数据接收缓冲

 

8、net.core.wmem_default和net.core.wmem_max
     默认和最大的TCP数据发送缓冲