在安装Oracle的时候须要调整linux的内核参数,可是各参数表明什么含义呢,下面作详细解析。linux
Linux安装文档中给出的最小值:shell
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586
各参数详解:并发
kernel.shmmax:性能
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的太低可能会致使须要建立多个共享内存段,这样可能致使系统性能的降低。至于致使系统降低的主要缘由为在实例启动以及ServerProcess建立的时候,多个小的共享内存段可能会致使当时轻微的系统性能的下降(在启动的时候须要去建立多个虚拟地址段,在进程建立的时候要让进程对多个段进行“识别”,会有一些影响),可是其余时候都不会有影响。spa
官方建议值:code
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,因此若是是32为系统,通常可取值为4294967295。32位系统对SGA大小有限制,因此SGA确定能够包含在单个共享内存段中。进程
64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,通常取值大于SGA_MAX_SIZE便可,能够取物理内存-1byte。例如,若是为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA确定会包含在单个共享内存段中。 ip
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)文档
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,通常确定是够用了。
fs.file-max:
该参数决定了系统中所容许的文件句柄最大数目,文件句柄设置表明linux系统中能够打开的文件的数量。
fs.aio-max-nr:
此参数限制并发未完成的请求,应该设置避免I/O子系统故障。
kernel.sem:
以kernel.sem = 250 32000 100 128为例:
250是参数semmsl的值,表示一个信号量集合中可以包含的信号量最大数目。
32000是参数semmns的值,表示系统内可容许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上能够执行的操做数量。
128是参数semmni的值,表示系统信号量集合总数。
net.ipv4.ip_local_port_range:
表示应用程序可以使用的IPv4端口范围。
net.core.rmem_default:
表示套接字接收缓冲区大小的缺省值。
net.core.rmem_max:
表示套接字接收缓冲区大小的最大值。
net.core.wmem_default:
表示套接字发送缓冲区大小的缺省值。
net.core.wmem_max:
表示套接字发送缓冲区大小的最大值