8、参数fs.file-max
a、参数描述
该参数指定了当前系统下可打开的最大文件句柄数。也就是可以打开的最大文件数。
无论何时当一个文件句柄被应用程序请求时,linux内核将动态的分配文件句柄。但是当应用程序释放后,内核并不释放这些文件句柄。
Linux内核采用循环利用这些句柄方式来取代释放。有点类似于缺省情况下Oracle被删除记录的空闲空间并不释放,下次可继续使用。
因此系统中已分配的句柄数的值可能很高,而实际真正使用的句柄数值很低。
注意,该值是一个系统级别的限制,因此该参数的值建议大于等于Oracle用户的limit限制nofile的值
对于Oracle 9i以及10g,Oracle建议该值至少设置为65536。
b、查看当前设置的可打开的文件句柄数
$ cat /proc/sys/fs/file-max
这里的"fs.file-max = 65536"其实是由"fs.file-max = 512 * PROCESSES"得到的
我们指定PROCESSES的值为128,即为"fs.file-max =512 *128"。
6815744 512 x processes (for example 6815744 for 13312 processes)
c、查看当前文件句柄数的使用情况
$ cat /proc/sys/fs/file-nr
The file-nr file displays three parameters:
- Total allocated file handles
- Currently number of used file handles (2.4 kernel); Currently number of unused file handles (2.6 kernel)
- Maximum file handles that can be allocated (see also /proc/sys/fs/file-max)
在kernel 2.6之前的版本中,file-nr 中的值由三部分组成,分别为:
1).已经分配的文件句柄数,2).已经分配单没有使用的文件句柄数,3).最大文件句柄数。
但在kernel 2.6版本中第二项的值总为0,这并不是一个错误,它实际上意味着已经分配的文件句柄无一浪费的都已经被使用了
d、修改最大文件句柄数
下面是process为1000个时的设置
# echo 512000 > /proc/sys/fs/file-max
# sysctl -w fs.file-max=512000
# echo "fs.file-max=512000" >> /etc/sysctl.conf
9、网络参数
a、参数描述
在Linux下,Oracle使用UDP作为缺省协议用于进程之间的交互以及实例间cache fusion buffer传输。
Oracle 建议缺省的最大发送以及接收缓冲的大小为256KB。接收缓冲区用于TCP/UDP传输时hold住应用程序接收到的数据直到被读取。
net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)。
net.core.rmem_max :表示接收套接字缓冲区大小的最大值(以字节为单位)
net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)。
net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)。
b、设置网络参数
# sysctl -w net.core.rmem_default=262144
# sysctl -w net.core.wmem_default=262144
# sysctl -w net.core.rmem_max=4194304
# sysctl -w net.core.wmem_max=1048576
永久修改方式,直接修改sysctl.conf文件
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576
c、端口号的设置
Oracle建议的端口号值为1024 65000
# sysctl -w net.ipv4.ip_local_port_range="1024 65000"
net.ipv4.ip_local_port_range=1024 65000
The first number is the first local port allowed for TCP and UDP traffic, and the second number is the last port number.
d、其他参数
对于Oracle rac环境,考虑修改修改下列ip内核参数以提高failover性能
net.ipv4.tcp_keepalive_time
net.ipv4.tcp_keepalive_intvl
net.ipv4.tcp_retries2
net.ipv4.tcp_syn_retries
see Metalink Note:249213.1 and Note:265194.1.