主要参考文档:
http://www.360doc.com/content/12/0104/17/8378608_177254604.shtml
在rhel中安装oracle时,需要修改部门内核参数,具体操作为:
Vim /etc.sysctl.conf
添加下面的行,当然如果系统部门默认参数已经大于此表中的个别参数,则不用再做更改
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
下面对这些参数进行解析。
系统参数简析
这些都是一些系统参数,其实时起作用的文件位于/proc/sys/文件夹下。
其中core文件夹下的文件对应的是内核参数,net文件夹下的文件对应的是网络参数,如此尔尔。
临时修改这些参数,可以使用sysctl命令,但是每次系统重启后,/proc/文件夹下的内容都要被重写。因此如果想永久改变某些参数,则需要将他们写到/etc/sysctl.conf文件中。
修改系统参数的3种方法:
临时修改
使用sysctl命令。Sysctl的常用参数有:
Sysctl -w variable=value -w参数是临时改变某个参数的值。其中variable的命名规则为从/proc/sys/目录下起,将目录表示法中的“/”改为“.”,例如/proc/sys/net/core/wmem_default文件保存了发送套接字缓冲区大小的缺省值(单位字节),其对应的variable即为net.core.wmem_default。
Sysctl -p filename -p参数是要从指定的文件加载系统参数,如未指明filename则默认从/etc/sysctl.conf文件中加载。
Sysctl -a -a参数用来显示所有的系统参数。
永久修改
直接配置/etc/sysctl.conf文件。Sysctl.confi文件的书写规则为variable=value,详细规则参考上文临时修改sysctl -w参数。这样修改后,每次系统启动都会加载此文件中的配置。
利用开启启动配置自动修改
在/etc/rc.local文件增加修改命令行。如:
echo 256960 > /proc/sys/net/core/rmem_default
下面说一下具体系统参数的意义:
kernel.shmmni = 4096
表示最小共享内存规定为4096KB
kernel.sem = 250 32000 100 128
4个参数分别是SEMMSL:每个用户拥有信号量最大数,SEMMNS:系统信号量最大数,SEMOPM:每次semopm系统调用可以执行的信号操作的数量,SEMMNI:系统参数用于控制整个Linux系统中信号集的最大数量。详细信息参考http://www.linuxidc.com/Linux/2011-11/48245.htm
fs.file-max = 6815744
指定了系统范围内所有进程可以打开的文件句柄的数量限制。而ulimit其实就是对单一程序的限制,进程级别的。
net.ipv4.ip_local_port_range = 9000 65500
表明网络端口的范围,从9000到65500.
net.core.rmem_default = 4194304
默认的TCP数据接收缓冲。
net.core.wmem_default = 262144
默认的TCP数据发送缓冲。
net.core.rmem_max = 4194304
最大的TCP数据接收缓冲。
net.core.wmem_max = 1048576
最大的TCP数据发送缓冲。
fs.aio-max-nr = 1048576
同时可以拥有的异步IO请求数目。