当前linux使用越来越频繁,并且很多核心的业务都开始转移到linux上面。linux对于oracle的支持是比较好的,现在就oracle在linux上面的一些参数调整进行说明
1. Linux 系统下的核心参数:
[root@ECSDB etc]# cat sysctl.conf 或者到 /proc/sys/kernel 下查看。
kernel.shmall = 2097152
kernel.shmmax = 8405194752 一般配置为物理内存50%,如果内存很大,可以增加,表示共享内存最大值
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
建议设置:250 32000 100 128
第一列,表示每个信号集中的最大信号量数目。
第二列,表示系统范围内的最大信号量总数目。
第三列,表示每个信号发生时的最大系统操作数目。
第四列,表示系统范围内的最大信号集总数目。
所以,(第一列)*(第四列)=(第二列)
以上设置,可以通过执行ipcs -l来验证。
fs.file-max = 65536 fs.file-max = 65536该文件用于控制内核信号量,信号量是System VIPC用于进程间通讯的方法。 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_default = 262144 net.core.wmem_max = 262144 vm.min_free_kbytes = 102400 --系统最低保留内存 |
----- 小技巧: 修改 /etc/sysctl.conf 文件之后立刻生效命令 # sysctl -p
2. 基于大页面技术的参数:
vm.nr_hugepages = 143360
vm.swappiness=10 --第二个参数是使用内存到90的时候,开始使用交换分区
这个可以根据计算得出,通常huge page的一个块是2m,如下:
[root@mytest1 ~]# cat /proc/meminfo | grep -i huge AnonHugePages: 884736 kB HugePages_Total: 143360 HugePages_Free: 93966 HugePages_Rsvd: 5217 HugePages_Surp: 0 Hugepagesize: 2048 kB |
这说明,在linux系统上所有的sga加起来,不能大于143360*2048KB
同时,需要在/etc/security/limits.conf
oracle soft memlock 293601280
oracle hard memlock 293601280
这两个设置,表示oracle最大的锁定内存,如果不设,后台会报错,单位为KB