Linux服务器安装Oracle时的内核参数配置

前言

在Linux上安装Oracle时,一般需要调整Linux的内核参数。
Linux安装文档中给出的最小值如下:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.ip_local_port_range = 9000 65500

 

一、参数介绍

各个参数的含义是什么呢?下面进行简单介绍。

❑ kernel.shmmax

shmmax 是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA。

设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降 。在实例启动以及Server Process 创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候 需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。这意味着如果你的程序不是经常Create Processes(以及Destroy Them),性能方面就不是考虑的问题。

论坛上的一些说法: SHMMAX 仅仅是在共享内存段被创建的时候用来比较的一个数字,当共享内存段被一个进程(Process)创建,操作系统检查是否被要求的共享内存段的值大于shmmax 的值 ,如果是,那么将会抛出一个错误。这个时候系统会创建另外的一个或多个共享内存段满足进程的需求 。一般来说,共享内存段个数和系统性能没有太直接的关系,也不会对性能产生太大的影响。

官方建议值:

32位linux系统:可取最大值为4GB(4294967296bytes) -1byte,即4294967295。建议值为多于内存的一半,所以如果是32位系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。

64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取1210241024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。

❑ kernel.shmall

kernel.shmall 参数用来控制可以使用的共享内存的总页数。该参数大小为物理内存除以pagesize(Linux共享内存页大小为4KB)。

-- 查看os系统页的大小:
# getconf PAGESIZE
  4096

❑ kernel.shmmni

shmmni 参数是共享内存段的最大数量(注意这个参数不是 shmmin,是shmmni, shmmin 表示内存段最小大小 )。
shmmni 缺省值 4096 ,一般肯定是够用了。

❑ fs.file-max

fs.file-max参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。

fs.file-max为512 乘以 processes。

如128个process,则file-max=512*128=65536。

❑ fs.aio-max-nr

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

net.ipv4.ip_local_port_range参数表示应用程序可使用的IPv4端口范围。

❑ net.core.rmem_default

net.core.rmem_default参数表示套接字接收缓冲区大小的缺省值。

❑ net.core.rmem_max

net.core.rmem_max参数表示套接字接收缓冲区大小的最大值。

❑ net.core.wmem_default

net.core.wmem_default参数表示套接字发送缓冲区大小的缺省值。

❑ net.core.wmem _max

net.core.wmem _max参数表示套接字发送缓冲区大小的最大值。

 

二、参数配置示例演示

可通过修改文件sysctl.conf 对核心参数进行配置,修改该文件不需要重启OS,只需要命令 /sbin/sysctl -p 就可以让修改的参数即时生效。

(1)查看服务器的物理内存

[root@ruiadg1 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          15885         673         240        4774       14971       10107
Swap:         16375          42       16333

(2)查看processes值

SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     1000
log_archive_max_processes            integer     4
processes                            integer     300

(3)计算参数值

kernel.shmmax=1588510241024*0.5=8328314880

kernel.shmall = 15885*1024/4=4066560

fs.file-max=512*300=153600

(4)修改参数

#vi /etc/sysctl.conf

添加如下内容:
fs.aio-max-nr = 1048576
fs.file-max = 153600
kernel.sem = 250 32000 100 128
kernel.shmall = 4066560
kernel.shmmax = 8328314880
kernel.shmmni = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.ip_local_port_range = 9000 65500

# sysctl -p --使配置生效

fs.aio-max-nr = 1048576
fs.file-max = 153600
kernel.sem = 250 32000 100 128
kernel.shmall = 4066560
kernel.shmmax = 8328314880
kernel.shmmni = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.ip_local_port_range = 9000 65500

在这里插入图片描述

至此,已完成内核参数的配置。


参考:
https://blog.csdn.net/xujinyang/article/details/6830493
https://www.cnblogs.com/colben/p/4120439.html

Guess you like

Origin blog.csdn.net/Ruishine/article/details/121357983