Oracle 内核参数
安装Oracle的时候,可以参考Oracle 的安装文档,来设置相关内核参数的值,但是有些参数的值还是需要根据我们自己的情况来进行调整。注:不同系统的参数不同,本篇针对linux。
一。Linux 系统下的核心参数
# vi /etc/sysctl.conf kernel.shmmax =
kernel.shmall =
kernel.shmmni =
kernel.sem =
fs.file-max =
net.ipv4.ip_local_port_range =
net.core.rmem_default =
net.core.rmem_max =
net.core.wmem_default =
net.core.wmem_max = 该参数保存在/etc/sysctl.conf 下,修改该文件不需要重启OS,只需要使用如下命令:
# /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;
查看os系统页的大小
#getconf PAGESIZE
这里显示的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 可以自动为我们调整以下内存池的大小:
* Buffer cache (DB_CACHE_SIZE)
* Shared pool (SHARED_POOL_SIZE)
* Large pool (LARGE_POOL_SIZE)
* Java pool (JAVA_POOL_SIZE)
* Streams pool (STREAMS_POOL_SIZE)
需要手动调整的参数:
log buffer
db_nk_cache_size
db_keep_cache_size
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 内核参数优化
数据库的性能优化涉及到整个数据库运行环境的方方面面,诸如操作系统,Oracle自身,存储,网络等等几个大块.而操作系统则是Oracle稳定运行与最大化性能的基石.本文主要描述基于Linux系统下 Or ...
- oracle内核参数详解
一.前言 在生产中,我们安装oracle数据库时,为达到最优我们需要对操作系统的内核参数进行一定的调整.主要从内存.cpu.io以及网络等方面,根据实际情况进行调整.以下参数可供大家参考,如有不当之处 ...
- ORACLE 10升级到10.2.0.5 Patch Set遇到的内核参数检测失败问题
在测试ORACLE 10.2.0.4升级到10.2.0.5 Patch Set的过程中,遇到一个内核参数检查失败的问题,具体错误信息如下所示 实验环境: 操作系统:Oracle Linux Ser ...
- linux中与Oracle有关的内核参数详解
工作当中遇到oracle运行时CPU占用率达到90%以上,调小以下参数值后恢复正常. fs.file-max = 65536 net.core.rmem_default=262144 net.core ...
- 安装Oracle需要调整的linux内核参数
在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-nr = 1048576 fs.file-m ...
- Linux 内核参数 和 Oracle相关参数调整
Linux 内核参数 和 Oracle相关参数调整 分类: Oracle Basic Knowledge2009-10-14 12:23 9648人阅读 评论(0) 收藏 举报 oraclelinux ...
- 安装ORACLE时在Linux上设置内核参数的含义
前两天看到一篇Redhat官方的Oracle安装文档,对于Linux内核参数的修改描述的非常清晰. 安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其 ...
- Linux oracle安装 内核参数讲解
在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. Linux安装文档中给出的最小值: fs.aio-max-nr = 1048576 fs.file-m ...
- oracle安装内核参数设置
安装oracle内核参数说明及设置 kernel.shmmax 说明: Linux进程可以分配的单独共享内存段的最大值(byte) 64位的linux操作系统,设置应该大于SGA_MAX_TARGET ...
随机推荐
- MySQL的数据库引擎的类型及区别
MySQL的数据库引擎的类型 你能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和 ...
- C#轻型ORM框架PetaPoco试水
近端时间从推酷app上了解到C#轻微型的ORM框架--PetaPoco.从github Dapper 开源项目可以看到PetaPoco排第四 以下是网友根据官方介绍翻译,这里贴出来. PetaPoco ...
- 阅读の反思のGraphicsPath.AddArc
最近在使用GDI+绘图,想要绘制一个圆角矩形,于是在网上搜索,发现如下方法: 于是自己扫视一眼,只看到"先画四个园弧,再调用CloseFigure" 由于没仔细看注意, ...
- iOS之内购
很久之前就想出一篇IOS内付费的教程,但是一查网上的教程实在太多了,有的写得真的蛮不错的,就心想算了,于是就保存在草稿箱了.至于为什么写完它呢!真是说来话长,最近公司有个项目经理跑来问我有关苹果内付费 ...
- JavaScript中常用函数(入门级)(持续更新)
本文中枫竹梦介绍一些JavaScript中入门级的常用函数,对于已经过了入门的童鞋可选择略过,都是一些非常实用的函数.如果发现什么问题,欢迎讨论. 问题列表 Q1: 设计一个函数repeatIt(st ...
- Log4Net之初步了解
原创文章,转载必需注明出处:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/log4net%E4%B9%8B%E5%88%9D%E6 ...
- cvSaveImage的第三个参数
http://stackoverflow.com/questions/801054/opencv-cvsaveimage-jpeg-compression-factor #define CV_IM ...
- LeetCode 260
Single Number III Given an array of numbers nums, in which exactly two elements appear only once and ...
- Linux系统调用(转载)
目录: 1. Linux系统调用原理 2. 系统调用的实现 3. Linux系统调用分类及列表 4.系统调用.用户编程接口(API).系统命令和内核函数的关系 5. Linux系统调用实例 6. Li ...
- WDatePicker 屏蔽onchange事件的解决办法
受下面文章的启发,使用DatePicker自带的年月日相关的change事件,可以“勉强”实现input控件的onchange(),直接上代码: 1.第一种方式:利用DatePicker提供的年.月. ...