ORACLE19C内核参数调整参考(持续更新ing)
/etc/sysctl.conf 中参数调整如下
1.内存页数kernel.shmall计算方法 (统一一次可以使用的共享内存总量)
physical RAM size / pagesize
(实际物理内存/系统数据页)
getconf PAGESIZE
#查看系统数据页大小(以字节为单位)
[root@tertiary ~]# getconf PAGESIZE
4096
cat /proc/meminfo |grep -i MemTotal
#实际物理内存大小(以千字节为单位)
[root@tertiary ~]# cat /proc/meminfo |grep -i MemTotal
MemTotal: 3798412 kB
\(\frac{实际物理内存大小}{系统数据页大小}=\frac{3798412}{4}=949,603\)
kernel.shmall=949603
2.单个共享内存段的最大值kernel.shmmax计算方法
1/2 of physical RAM
\(\frac{1}{2}*实际物理内存大小=\frac{3798412*1024}{2}=1,944,786,944\)
kernel.shmmax=1944786944
3.控制内核的行为参数kernel.panic_on_oops
0 尝试继续运行。
1 延迟几秒钟(输出klogd时间记录),然后警告,如果警告sysctl也是非0后机器将重新启动。
kernel.panic_on_oops = 1
4.rp_filter参数用于控制系统是否开启对数据包源地址的校验
rp_filter参数用于控制系统是否开启对数据包源地址的校验。
net.ipv4.conf.all.rp_filter
net.ipv4.conf.default.rp_filter
0:不开启源地址校验。
1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包。
2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),如果反向路径不同,则直接丢弃该数据包。
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
5.信号量参数kernel.sem设置
kernel.sem = 250 32000 100 128
第一列,表示每个信号集中的最大信号量数目。semmsl
第二列,表示系统范围内的最大信号量总数目。semmns
第三列,表示每个信号发生时的最大系统操作数目。semopm
第四列,表示系统范围内的最大信号集总数目。semmni
6.系统范围内共享内存段的最大数量kernel.shmmni
kernel.shmmni = 4096
7.可以分配的文件句柄的最大数目fs.file-max
fs.file-max = 6815744
512 * 进程数(如:6815744 = 512 * 13312)
8.同时可以拥有的的异步IO请求数目fs.aio-max-nr
fs.aio-max-nr = 1048576
1048576 其实它等于 1024*1024 也就是 1024K 个,限制并发未完成的请求,应设置为避免I / O子系统故障。
9.net.ipv4.ip_local_port_range客户端的一个 ip 可用的端口数量
一个 ip 最多创建的连接
net.ipv4.ip_local_port_range = 9000 65500
最小:9000,最大:65500
10.net.core.rmem_default接收套接字缓冲区大小的默认值(以字节为单位)
net.core.rmem_default = 262144
#默认值256KB
11.net.core.rmem_max接收套接字缓冲区大小的最大值(以字节为单位)
net.core.rmem_max = 4194304
#最大值4MB
12.net.core.wmem_default发送套接字缓冲区大小的默认值(以字节为单位)。
net.core.wmem_default = 262144
##默认值256KB
13.net.core.wmem_max发送套接字缓冲区大小的最大值(以字节为单位)
net.core.wmem_max = 1048576
#最大值1MB
一般设置按照如上规则设置,如果文件中已经设置的值比计算结果大,以文件中本身的值为准
vi /etc/sysctl.conf
编辑完成后,执行sysctl -p
生效