Kernel.shmmax shmmax 指的是单个共享内存段的最大尺寸,单位为字节 oracle 建议,kernel.shmmax的值不能少于物理内存的一半,而且要大于Oracle中sga-max-size的值,否则会造成oracle性能下降 一般32bit操作系统,直接设置为系统支持的最大内存即可,64bit操作系统设置大于取内存大小减1的值即可 如:当前内存为2G 则kernel.shmmax = 2*1024*1024=2097152 当前内存为8G则kernel.shmmax = 7*1024*1024=7340032 Kernel.shmall Shmall指系统一次可以使用的共享内存段的最大数量,以页为单位 Oracle默认设置为 kernel.shmall = 2097152 即最大8G(2097152*4/1024/1024),(在调整SGA时需要注意,SGA大小设置不可超过该值),根据系统内存大小和使用的不同可以参考如下:设置的一般规律 kernel.shmall =8G/4k=8388608k/4k=2097152 ---内存8G kernel.shmall =16G/4k=16777216k/4k=4194304 ---内存16G kernel.shmall =32G/4k=33554432k/4k=8388608 ---内存32G (RedHat linux系统中页大小为4096即4K,实际环境以getconfPAGE_SIZE结果为准) kernel.shmmni shmmni 指系统共享内存段的最大数量 oracle设置默认值为4096,一般是足够用了,不需要调整 文件句柄数的相关内核参数设置 fs.file-max fs.file-max指系统能够打开最大的文件句柄数 oracle建议设置为65536,一般不用修改 信号的相关内核参数设置 kernel.sem kernel.sem是指 semmsl,semmns,semopm,semmni这4个参数 semmsl 指每个线号集的最大信号数,Oracle建议是设置为oracle的最大进程数+10 semmni 指整个系统的信号集的最大数量 semmns 指整个系统的信号总数,也就是semmni*semmsl的结果 semopm 指每个semop系统调用可以执行的信号操作的最大数量 oracle默认设置 semmsl=250 semmns=3200 semopm=100 semmni=128 即kernel.sem= 250 3200 100 128 例:在oracle ora.init文件参数中设置PROCESSES参数为5000 则semmsl=5010,semmni=128,semmns=semmsl* semmni=641280 另外semopm建议设置等于semmsl值即5010 设置的结果为:kernel.sem=5010 641280 5010128 网络相关的内核参数设置 net.core.rmem_default net.core.rmem_default 指网络套接字的默认接收缓冲区的大小,oracle建议设置为265K即262144 net.core.rmem_max net.core.rmem_max 指网络套接字的最大接收缓冲区的大小,oracle10g及以前版本建议设置为256k即262144 oracle11g建议设置为4M 即4194304 net.core.wmem_default net.core.wmem_default指网络套接字的默认发送缓冲区的大小,oracle建议设置为265K即262144 net.core.wmem_max net.core.wmem_max 指网络套接字的最大发送缓冲区的大小,oracle10g及以前版本建议设置为256k即262144 oracle11g建议设置为1M即1048576 net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range ,指本地的允许打开随机端口范围 oracle10g前建议端口范围为1024 65000,oracle11g建议端口范围为:9000 65500 并忽略oracle安装程序任何关于这个参数的警告 Asynchronous I/O相关的内核参数设置 fs.aio-max-nr fs.aio-max-nr 指系统允许的最大的异步IO请求大小 oracle默认设置为1M即1048576,一般不用更改 |