Oracle 内核参数
安装Oracle的时候,可以参考Oracle 的安装文档,来设置相关内核参数的值,但是有些参数的值还是需要根据我们自己的情况来进行调整。注:不同系统的参数不同,本篇针对linux。
一。Linux 系统下的核心参数
1 # vi /etc/sysctl.conf 2 3 kernel.shmmax = 2147483648 4 kernel.shmall = 2097152 5 kernel.shmmni = 4096 6 kernel.sem = 250 32000 100 128 7 fs.file-max = 65536 8 net.ipv4.ip_local_port_range = 9000 65000 9 net.core.rmem_default = 4194304 10 net.core.rmem_max = 4194304 11 net.core.wmem_default = 262144 12 net.core.wmem_max = 262144 13 14 该参数保存在/etc/sysctl.conf 下,修改该文件不需要重启OS,只需要使用如下命令: 15 # /sbin/sysctl -p
在介绍各个参数之前,先来看一个概念:共享内存
共享内存是在系统内核分配的一块缓冲区,多个进程都可以访问该缓冲区。由于进程可以直接读写内存,避免了在内核空间与用户空间的切换,所以共享内存读写效率很高。当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。共享内存类似与windows环境编程中的内存映像文件。通过使用共享内存允许两个或多个进程共享一定的存储区,因为不需要拷贝数据。Oracle SGA即是基于此方式来实现Oracle进程之间数据共享。因此SGA的合理设置对Oracle性能有重大的影响。可以通过ipcs -lm来查看所有的共享内存设置。
共享内存总大小=(每个共享内存段*相应共享内存段大小)总和
1.1 kernel.shmmax
Shmmax 是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降 。
Shmmax 仅仅是在共享内存段被创建的时候用来比较的一个数字,当共享内存段被一个进程(Process)创建,操作系统检查是否被要求的共享内存段的值大于shmmax 的值 ,如果是,那么将会抛出一个错误。这个时候系统会创建另外的一个或多个共享内存段满足进程的需求 。一般来说,共享内存段个数和系统性能没有太直接的关系,也不会对性能产生太大的影响。
Oralce 建议 SHMMAX > SGA(SGA_MAX_SIZE),这样在任何时候都不会有甚至轻微的性能下降的隐患。
1.2 kernel.shmall
kernel.shmall 参数是控制共享内存页数。该参数大小为物理内存除以pagesize;
1 查看os系统页的大小 2 #getconf PAGESIZE 3 4096
这里显示的pagesize 是4k,假设一个共享内存段的最大大小是16G,那么需要共享内存页数是 16GB/4KB=16777216KB/4KB=4194304(页),也就是64Bit 系统下16GB 物理内存,设置 kernel.shmall = 4194304 才符合要求,几乎是原来设置2097152的两倍。
1.3 kernel.shmmni
Shmmni 内核参数是共享内存段的最大数量(注意:这个参数不是 shmmin,是shmmni, shmmin 表示内存段最小大小 )。shmmni 缺省值 4096 ,一般肯定是够用了。
1.4 kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI
共享资源提供并发同步的计数器(PV操作),避免竞争,一个时刻只能由一个进程操作共享资源,多人可能要操作共识资源,计数器提供计数,排队。
- SEMMSL:内核参数用于控制每个信号集合的最大信号数。Oracle 建议将 SEMMSL 设置为 spfileXXX.ora文件(适用于Linux 系统上所有数据库)中的最大 process实例参数设置再加上 10。此外,Oracle 建议将 SEMMSL 设置为不小于 100。
- SEMMNS:内核参数用于控制整个Linux 系统中的信号(而非信号集)的最大数量。Oracle 建议将 SEMMNS 设置为系统上每个数据库的 process实例参数设置之和,加上最大的 process的两倍,最后为系统上的每个 Oracle 数据库加上 10。
- SEMOPM: 内核参数用于控制每个 semop 系统调用可以执行的信号操作数。semop 系统调用(函数)能够使用一个 semop 系统调用完成多个信号的操作。一个信号集可以拥有每个信号集中最大数量的 SEMMSL,因此建议将 SEMOPM 设置为等于 SEMMSL。Oracle 建议将 SEMOPM 设置为不小于 100。
- SEMMNI: 内核参数用于控制整个 Linux 系统中信号集的最大数量。 Oracle 建议将 SEMMNI 设置为不小于 100。使用以下计算式确定可以在 Linux 系统上分配的信号的最大数量。它将是以下两者中较小的一个值:SEMMNS 或 (SEMMSL * SEMMNI) 。
1.5 fs.file-max
文件句柄数,表示在Linux系统中可以打开的文件数量。Oracle 建议将整个系统的文件句柄值至少设置为 65536。建议设置:fs.file-max=512*processes。
1.6 网络参数
net.ipv4.ip_local_port_range 应用程序可使用的IPv4端口范围。net.core.rmem_default 套接字接收缓冲区大小的缺省值net.core.rmem_max 套接字接收缓冲区大小的最大值net.core.wmem_default 套接字发送缓冲区大小的缺省值net.core.wmem_max 套接字发送缓冲区大小的最大值
1.7 fs.aio-max-nr
指同时可以拥有的的异步IO请求数目。建议设置为:1048576 其实它等于 1024*1024 也就是 1024K 个。
二. Oracle 参数 SGA_TARGET
在Oracle 10g 中引入了一个新特性:自动共享内存管理(Automatic Shared Memory Management ASMM)。控制这一特性的,就是参数SGA_TARGE。当给SGA_TARGET 指定值后(默认为0,即没有启动ASMM),就自动启动ASMM特性。启动ASSM 特性之后:Oracle 可以自动为我们调整以下内存池的大小:
1 * Buffer cache (DB_CACHE_SIZE) 2 * Shared pool (SHARED_POOL_SIZE) 3 * Large pool (LARGE_POOL_SIZE) 4 * Java pool (JAVA_POOL_SIZE) 5 * Streams pool (STREAMS_POOL_SIZE)
需要手动调整的参数:
1 log buffer 2 db_nk_cache_size 3 db_keep_cache_size 4 db_recycle_cache_size
SGA_TARGET和SGA_MAX_SIZE 都是表示SGA 最大的大小,但SGA_TARGET不能大于SGA_MAX_SIZE 。Oracle10g 下, SGA_MAX_SIZE 仍然表示SGA 的大小的上限值,而SGA_TARGET 是SGA 的所有组件的大小的最大值之和,即当SGA_TARGET< SGA_MAX_SIZE 的时候,oracle 就会忽略SGA_MAX_SIZE 的值,SGA_TARGET 也就成了SGA 的在此实例中的上限制,它能动态改变大小,但是不能够大于SGA_MAX_SIZE 的值。
当SGA_TARGET< SGA_MAX_SIZE 时,实例重启以后SGA_MAX_SIZE 就变成SGA_TARGET 的大小了。
Oracle 内核参数相关推荐
- linux安装oracle 操作系统内核参数 aio,Oracle Study之案例--安装Oracle内核参数配置
Oracle Study之案例--安装Oracle内核参数配置 在Linux系统下,安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其中最主要的是和内 ...
- oracle 内核参数设置
oracle 内核参数设置 共享内存的相关内核参数设置 Kernel.shmmax shmmax 指的是单个共享内存段的最大尺寸,单位为字节 oracle 建议,kernel.shmmax的值不能少于 ...
- Linux 下 Oracle 内核参数优化
数据库的性能优化涉及到整个数据库运行环境的方方面面,诸如操作系统,Oracle自身,存储,网络等等几个大块.而操作系统则是Oracle稳定运行与最大化性能的基石.本文主要描述基于Linux系统下 Or ...
- Oracle内核参数介绍
内核参数大致可以分为4类: 共享内存(shared memory) 信号量(semaphores) 网络(network) 打开文件(open files) 一.共享内存 共享内存是用于进程间通信的一 ...
- ORACLE内核参数
服务器内存为4G的情况下 修改/etc/sysctl.conf文件 (ROOT账户) kernel.shmmax = 2147483648 //公式:2G*1024*1024*1024=2147483 ...
- aix内核是linux,linux和aix内核参数检查
安装oracle软件时需要设置操作系统级别的用户限制,后期检查可以使用如下命令,方便问题的排查工作 linux: tail -15 /etc/security/limits.conf tail -30 ...
- oracle solaris 内核 源码,Oracle和SUN Solaris内核参数
Oracle和SUN Solaris内核参数 2010-4-11文字大小:大中小 本文描画了Sun Solaris上运转Oracle数据库所须要配置的一些内核参数. 一些预备知识shared memo ...
- 修改oracle用户资源限制,RHEL5中安装Oracle11gR2修改用户SHELL限制、环境配置、内核参数...
修改用户的SHELL的限制[root@localhost -]# vi /etc/security/limits.conf # /etc/security/limits.conf # #Each li ...
- Linux内核参数(如kernel.shmmax)及Oracle相关参数调整(如SGA_MAX_SIZE)
Linux内核参数(如kernel.shmmax)及Oracle相关参数调整(如SGA_MAX_SIZE) 我们一般在Linux 上安装 设置Oracle 数据库 或者在更换或升级硬件的时候都需要配置 ...
最新文章
- R语言数据类型及数据类型判断
- vector can通信源码_CAN总线IMU在自动驾驶安全控制中的应用
- MyBatis 源码解读-配置解析过程
- goalnd 分支合并完出现两个箭头
- python数据预测模型算法_Python AI极简入门:4、使用回归模型预测房价
- C# .Net中的类型转换(3)
- 疯狂连连看之开发游戏界面组件
- centos7中 npm install express 时Error: Cannot find module 'express'错误
- 基于ZStack构建物联网平台
- Chinapub要买的书
- MATLAB常用画图函数
- 网络API接口的使用
- 支付宝 java 签名_支付宝APP支付(Java后台生成签名具体步骤)
- 解决github官网进不去
- 进程子进程 线程子线程结束问题
- STM32F103ZE uIP DM9051 SPI以太网移植指南
- 超详细的css知识树状图~CSS选择器盒子模型、浮动、定位和装饰
- 【码农学编曲】Cubase乐器轨音频轨各种轨没声音的终极解决方案
- linux使用sts4,视听说sts4-4
- 数据可视化,BizCharts图表库入坑历程
热门文章
- This version of MySQL doesn't yet support 'LIMIT IN/ALL/ANY/SOME subquery 解决方法
- Kinect for Windows SDK发布
- 解决redis-cli连接时出现Could not connect to Redis at 127.0.0.1:6379: Connection refused
- 计算机语言up,TweakBit PCSpeedUp
- 万兆以太网测试仪应该具备的测试功能
- MIUI 13:带来全新小部件,新增三大隐私保护功能等
- SpringBoot定时任务实现的两种方式介绍
- 后端技术:mybatis中resultMap用法示例笔记
- 前端:Element UI 多选框组用法笔记
- 开发者入门,这几款小工具能让你事半功倍