设置SHMMAX
SHMMAX参数定义共享内存段的最大尺寸(以字节为单位)。Oracle SGA包含共享内存,而不正确地设置SHMMAX可能会限制SGA的大小。在设置SHMMAX时,切记SGA的大小应该适合于一个共享内存段。SHMMAX设置不足可能会导致以下问题:
ORA-27123:unable to attach to shared memory segment
您可以通过执行以下命令来确定SHMMAX的值:
# cat /proc/sys/kernel/shmmax
设置SHMMNI我们现在来看SHMMNI参数。这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是4096。这一数值已经足够,通常不需要更改。您可以通过执行以下命令来确定SHMMNI的值:# cat /proc/sys/kernel/shmmni
4096
设置SHMALL最后,我们来看SHMALL共享内存内核参数。该参数控制着系统一次可以使用的共享内存总量(以页为单位)。简言之,该参数的值始终应该至少为:ceil(SHMMAX/PAGE_SIZE)
SHMALL的默认大小为2097152,可以使用以下命令进行查询:# cat /proc/sys/kernel/shmall
2097152
SHMALL的默认设置对于我们的Oracle9 i RAC安装来说应该足够使用。注意: 在i386平台上Red Hat Linux的页面大小 为4096字节。但是,您可以使用bigpages,它支持配置更大的内存页面尺寸。
设置信号既然我们已经配置了共享内存设置,现在就该考虑配置我们的 信号 了。对信号的最佳描述是,它是用于在共享资源(如共享内存)的进程(或进程中的线程)之间提供同步的计数器。在系统V中支持信号集,其中每一项都是信号计数。当应用程序请求信号时,它使用“集合”来完成此工作。要确定所有的信号限制,可使用以下命令:# ipcs -ls
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767您还可以使用以下命令:# cat /proc/sys/kernel/sem
250 32000 32 128
设置文件句柄在配置我们的Red Hat Linux服务器时,确保文件句柄的最大数量足够大是非常关键的。文件句柄设置表示您在Linux系统中可以打开的文件数量。使用以下命令来确定整个系统中文件句柄的最大数量:# cat /proc/sys/fs/file-max
32768
Oracle建议将整个系统的文件句柄值至少设置为65536。通过直接更改/proc文件系统,您可以不必重新启动机器而改变文件句柄最大数量的默认设置。我使用的方法是将以下命令置于/etc/rc.local启动文件中:# echo "65536" > /proc/sys/fs/file-max您还可以使用sysctl命令来更改SHMMAX的值:# sysctl -w fs.file-max=65536最后,您可以通过将该内核参数插入到/etc/sysctl.conf启动文件中,使这种更改永久有效:# echo "fs.file-max=65536" >> /etc/sysctl.conf
设置文件句柄在配置我们的Red Hat Linux服务器时,确保文件句柄的最大数量足够大是非常关键的。文件句柄设置表示您在Linux系统中可以打开的文件数量。使用以下命令来确定整个系统中文件句柄的最大数量:# cat /proc/sys/fs/file-max
32768
Oracle建议将整个系统的文件句柄值至少设置为65536。通过直接更改/proc文件系统,您可以不必重新启动机器而改变文件句柄最大数量的默认设置。我使用的方法是将以下命令置于/etc/rc.local启动文件中:# echo "65536" > /proc/sys/fs/file-max
net.ipv4.ip_local_port_range = 1024 65000
设置当本地系统向外发起tcp或udp连接请求时使用的端口范围。设置值为两个整数,缺省为“1024 4999”。
net.core.rmem_default = 1048576 # 套接字接收缓冲区大小的缺省值
net.core.rmem_max = 1048576 # 套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值
net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值