安装oracle时设置Linux系统内核参数

安装oracle数据库时设置linux系统内核参数是比较重要的,关系到安装oracle是否成功。前几天面试时面试官提到主要内核参数那些及大页内存参数。

一: 下面是一些安装oracle数据库时需要在 vi  /etc/sysctl.conf文件设置的参数

# vi /etc/sysctl.conf
#ORACLE SETTING
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 3221225472   
kernel.shmall = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.panic_on_oops = 1
vm.swappiness=10  
vm.vfs_cache_pressure=200  

解释几个比较重要的参数

1)kernel.shmmax  定义单个内存的最大值

64:kernel.shimmax > SGA <物理内存80%
32:<4G
例如:64G 物理内存设置如下

                 SGA <=物理内存的*0.8*0.8 <=40G ,  shimmax > 40g <64G-(2G至4G),如果是我的话kernel.shmmax=48G
                  SGA=40G(物理内存*0.8*0.8 ),PGA=10G(物理内存*0.8*0.2)
                  kernel.shmmax=48G*1024*1024*1024=51539607552 
                  kernel.shmmax=51539607552(字节)
2)kernel.shmall 控制共享内存页数
查看系统默认的值
getconf PAGESIZE 
默认是4096(字节 4K)
例如:64G物理内存设置如下
         kernel.shmall=64G/60G=64*1024*1024/4=16777216
        ORACLE默认是2097152
3)kernel.shmmni 共享内存段的最大数量

          系统默认是4096 一般情况不需要修改
          kernel.shmma*kernel.shmmni=

4)vm.swappiness  

减少这个参数会使系统尽快通过swapout不适用的进程资源石峰更多的物理内存
swappiness建议设置为10 默认是60
查看系统里有swappines
1) cat /proc/sys/vm/swappiness  ##默认是60
物理内存 - 60%= 40%  当物理内存使用达到40%会使用swap空间

vm.swappiness=10或者0   ## 当内存使用90%以上才能使用swap或者内存足够大不适用swap

5) vm.vfs_cache_pressure 
默认是100  增大这个参数设置了虚拟内存回收directory 和 i-node缓冲的挺像,这个值越大,回收缓冲越快
vi  /etc/sysctl.conf
vm.vfs_cache_pressure=200

二 : 大页内存

vi /etc/security/limits.conf

#如物理内存是64G 可以设置如下
* soft memlock 62914560   #软限制60G 
* hard memlock  62914560  #硬限制60G 


vi  /etc/sysctl.conf
vm.nr_hugepages =30000m   #大页内存

禁用oracle11G AMM 
如果oracle 11G以后的版本那么默认创建实列会使用aotumatic memory management (AMM)的特性与hugepage不兼容
在设置huepage之前需要先禁用AMM 设置初始化参数 MEMORY_TARGET /MEMORY_MAX_TARGET为0
alter system reset memory_target scope=spfile sid='*';
alter system reset memory_max_target scope=spfile sid='*';

例如:64G物理内存

  vi /etc/security/limits.conf
* soft memlock 62914560   #软限数据库制60G 
* hard memlock  62914560  #硬限数据库制60G

锁定60G,vm.nr_hugepages的大小 大于oracle内存(SGA),小于物理内存
vm.nr_hugepages= (SGA+1)/2m
vm.nr_hugepages 不超过物理内存85% 不能大于memlock,不能小于kernel.shmmax

vm.nr_hugepages=(40+1)/2m =21495808 m

上面设置成功后启动数据在alter日志查看数据库是否启用大页内存。

三 :透明大页在ORACLE  RAC环境中必须要关闭该功能
vi  /etc/grub.conf
在quiet 后面加上 transparent_hugepage=never 
reboot 
查看是否设置成功
[root@ogg1 ~]# cat  /sys/kernel/mm/redhat_transparent_hugepage/enabled 
always madvise [never] 
[root@ogg1 ~]# 

[root@ogg1 ~]# cat /proc/meminfo|grep  AnonHugePages
AnonHugePages:         0 kB

猜你喜欢

转载自blog.csdn.net/make_zhf/article/details/81413287