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 的大小了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server创建索引(转)

什么是索引 拿汉语字典的目录页&#xff08;索引&#xff09;打比方&#xff1a;正如汉语字典中的汉字按页存放一样&#xff0c;SQL Server中的数据记录也是按页存放的&#xff0c;每页容量一般为4K 。为了加快查找的速度&#xff0c;汉语字&#xff08;词&#xff09;典一般都…

Asp.NET Core 一个接口的多个实现如何通过 DI 注册?

咨询区 LP13我有三个 Service 类实现了同一个接口&#xff0c;参考代码如下&#xff1a;public interface IService { } public class ServiceA : IService { } public class ServiceB : IService { } public class ServiceC : IService { }我知道像其他的 DI 容器&#xff0c…

Elixir Ecto: 范围数据类型

从 PostgreSQL 9.2 以来, 可以用特定的操作符和函数存储和查询一个值的范围. 这是一个非常不错的特性, 比如在电子商务应用程序方面, 可以用一个字段 price_range 来替代 min_price, max_price 表示一个价格范围.在Ecto中使用范围数据类型 价格范围的表示方法如下 [0, 45.67] …

我们能复活恐龙吗?

全世界只有3.14 % 的人关注了爆炸吧知识鲁迅曾经说过&#xff1a;“不会画漫画的段子手不是好英语老师”咳咳~ 图图君就是这样一位专注知识科普的双语漫画家长按二维码带你去图图君家串串门儿我们到底能不能复活恐龙&#xff1f;长按二维码关注回复“恐龙”寻找答案吧在这里你不…

思考的技术与艺术

总的来说 1.人类的思维充满着各种各样的捷径&#xff0c;每一条捷径都是一把双刃剑。一方面&#xff0c;它降低了大脑的认知复杂性&#xff08;笼统的看一个问题要比细致的分析简单得多&#xff09;&#xff0c;有助于迅速做出绝大部分时候都正确的判断&#xff1b;但另一方面…

周期串问题(一)

题目: 题目一[周期串问题] 如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3) 代码如下: #include <iostream> #include <string> using namespace std;…

eks volumn s3_威客电竞 深渊联赛S3欧洲区总决赛,Secret成就八连冠

威客电竞&#xff0c;亚洲领先的专业电竞赛事预测平台。DOTA PIT深渊联赛线上赛第三赛季经过为期一周的激烈比赛&#xff0c;Secret战队在11支参赛队伍中一路杀进总决赛&#xff0c;与VP.P战队展开巅峰对决。最终Secret战队3:0完胜VP.P战队斩获DOTA PIT S3欧洲区冠军&#xff0…

ANE打包心得

1 ane中的p12证书是fb或者flashide中生成的&#xff08;例如air工程生成的p12&#xff09;&#xff0c;不是苹果账号的p12 2 打包bat中的 -platform 要和 extension.xml中的platform节点相对应 3 -C iPhone-ARM . 末尾的点要记得写 4 这就是个坑爹货啊&#xff01;转载于:…

初探IdentityServer4(客户端模式)

Oatuth2协议的客户端模式介绍Client Credentials Grant &#xff08;客户端模式&#xff09;是Oauth2.0协议中&#xff0c;四种模式自建单的一种。它由两部分构成&#xff0c;客户端和认证服务器。认证服务器确认客户端无误后返回一个token&#xff0c;客户端请求带着token访问…

2596 售货员的难题

2596 售货员的难题 时间限制: 1 s空间限制: 32000 KB题目等级 : 钻石 Diamond题解题目描述 Description某乡有n个村庄(1<n<&#xff1d;15)&#xff0c;有一个售货员&#xff0c;他要到各个村庄去售货&#xff0c;各村庄之间的路程s(0<s<1000)是已知的&#xff0c;…

研究表明:胸部大小其实早已.....

1 这样就能不战而胜了&#xff08;素材源于网络&#xff0c;侵删&#xff09;▼2 说好的情比金坚呢&#xff1f;▼3 整挺好&#xff0c;锅都不用洗了&#xff08;via.豆瓣撕破伤口、&#xff09;▼4 就是这么自信▼5 什么丝袜这么厉害▼6 好家伙&#xff0c;请问还需要女婿…

Java学习笔记之 IO包 字节流

IO包最重要的五个类和一个接口 File/OutputStream/InputStream(字节流)/Writer/Reader(字符流) 一个接口&#xff1a;Serializable File类&#xff1a; 字节流&#xff1a; OutputStream与InputStream是抽象类 OutputStream是整个IO包中&#xff0c;字节输出流的最大类 Fi…

周期串问题(二)

题目&#xff1a; 题目一[周期串问题] 如果一个字符串可以由某个长度为k的字符串重复多次得到&#xff0c;我们说该串以k为周期。例如&#xff0c;abcabcabcabc以3为周期&#xff08;注意&#xff0c;它也可以6和12为周期,结果取最小周期3&#xff09; 代码如下&#xff1a; …

bootstrap bootstraptable 固定列_1个Excel公式按条件自定义格式显示固定电话号码

点击右上角“关注”&#xff0c;每天免费获取干货教程前面写了很多篇关于数据查询、数据统计、数据分析、公式排错的教程&#xff0c;今天换一个口味&#xff0c;写个关于自定义格式显示数据的教程。因为工作中很多时候都需要按照指定的要求将数据源整理成固定的格式&#xff0…

记一次引入Elasticsearch的系统架构实战

前言我曾经面试安踏的技术岗&#xff0c;当时面试官问了我一个问题&#xff1a;如果你想使用某个新技术但是领导不愿意&#xff0c;你怎么办&#xff1f;对于该问题我相信大家就算没有面试被问到过&#xff0c;现实工作中同事之间的合作也会遇到。 因此从我的角度重新去回答这…

rsync 安装使用详解

RSYNC软件介绍&#xff1a; rsync是类unix系统下的数据镜像备份工具&#xff0c;从软件的命名上就可以看出来了——remote sync。它的特性如下&#xff1a;可以镜像保存整个目录树和文件系统。可以很容易做到保持原来文件的权限、时间、软硬链接等等。无须特殊权限即可安装。优…

【 Tomcat 】tomcat8.0 调优配置

2019独角兽企业重金招聘Python工程师标准>>> 1、优化内核及TCP连接&#xff1a; fs.file-max 655350  # 系统文件描述符总量 net.ipv4.ip_local_port_range 1024 65535  # 打开端口范围 net.ipv4.tcp_max_tw_buckets 2000  # 设置tcp连接时TIME_WAIT个数 n…

[转]ORACLE 异常错误处理

本文转自&#xff1a;http://www.cnblogs.com/soundcode/archive/2012/01/10/2318385.html 本篇主要内容如下&#xff1a; 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2.1 在…

java.io.StreamCorruptedException: invalid type code: AC解决办法

.java.io.StreamCorruptedException: invalid type code: AC解决办法问题描述&#xff1a; 在向一个文件写入可序列化对象时&#xff0c;每次只想向文件的末尾添加一个可序列化的对象&#xff0c;于是使用了FileOutputStream&#xff08;文件名&#xff0c;true&#xff09;间接…