Oracle中的sysctl.conf内核参数

当我们对Oracle进行安装部署时,需要按照相关要求修改OS内核参数,下面对Oracle按照部署时需要修改的相关内核参数进行简单介绍。

注:OS的内核参数大多数存放在/proc/sys目录下,可以在系统运行时进行更改,但是当系统重新启动时会失效,而通过/etc/sysctl.conf文件可以永久生效修改后的内核参数。

sysctl -p

该命令可以立即生效sysctl.conf中配置的内核参数。

如下为安装部署Oracle时需要配置的内核参数:

cat /etc/sysctl.conf

kernel.shmall

4294967296

kernel.shmmax

270914289664

vm.min_free_kbyte

524288

kernel.sem

4096 524288 4096 128

fs.file-max

6815744

net.ipv4.ip_local_port_range

9000 65500

net.ipv4.ipfrag_low_thresh

31457280

net.ipv4.ipfrag_high_thresh

33554432

net.core.rmem_defaul

262144

net.core.rmem_max

4194304

net.core.wmem_default

262144

net.core.wmem_max

1048576

fs.aio-max-nr

3145728

kernel.shmmni

4096

vm.nr_hugepages

64591

kernel.shmall

shmall表示共享内存总量,以页为单位, 而shmall默认为4294967296 已经足够大了,一般不需要调整,shmall不能低于SGA大小,若shmall低于SGA大小,实例启动时会报:ORA-27123: unable to attach to shared memory segment错误,且无法启动实例。

kernel.shmmax

shmmax参数用来定义单个共享内存段的最大值,该值应该配置足够大,能够在一个共享内存段中容下整个的SGA ,如果配置过低可能导致需要创建多个共享内存段,这样可能会导致系统性能下降。

269838450688/1024/1024/1024=252GB。

shmmax的单位为Byte(字节)。

vm.min_free_kbytes

该参数表示Linux VM最低保留多少的空闲内存空间,当可用的内存低于配置参数时,系统会进行cache内存的回收,来进行内存的释放。

单位是kb,524288/1024=512M。

kernel.sem

sem是semaphores的缩写,进程间通信--信号量,kernel.sem中4个参数分别对应SEMMSL SEMMNS SEMOPM SEMMNI

SEMMSL: 每个信号集的最大信号数量 ,一般该参数配置为数据库中最大PROCESS 参数的设置值加上 10,Oracle 建议 SEMMSL 不低于100。

SEMMNS:控制整个系统中信号量的最大数量,使用以下计算公式来确定系统中需要配置的信号的最大数量,(SEMMSL * SEMMNI)=SEMMNS。4096*128=524288。

SEMOPM: 该参数表示在一个 semop call中,每个信号量所允许的最大操作数量,一个信号集可以拥有每个信号集当中的最大数量SEMMSL 信号,建议 SEMOPM等于SEMMSL 。 Oracle 建议SEMOPM的值不低于 100 。

SEMMNI:该参数用于控制整个系统中信号集的最大数量。Oracle 建议SEMMNI 的值不低于 100 。

fs.file-max

该参数表示系统级别最大可以打开文件句柄的数量,文件句柄代表系统中可以打开文件的数量。

net.ipv4.ip_local_port_range

该参数配置向外连接端口范围,缺省为1024到4999。

net.ipv4.ipfrag_*

net.ipv4.ipfrag_low_thresh

net.ipv4.ipfrag_high_thresh

系统中当数据包传输发生错误,会进行碎片整理,有效的数据包被保留,而无效的数据包被丢弃,ipfrag参数指定了碎片整理时的最大/最小内存。

net.core.rmem_*

net.core.rmem_default默认数据接收窗口大小。

net.core.rmem_max最大数据接收窗口大小。

net.core.wmem_default默认数据发送窗口大小。

net.core.wmem_max最大数据发送窗口大小。

单位均为字节。

fs.aio-max-nr

该参数表示最大并发异步I/O请求数量,当系统中存在非常高的I/O请求时,如果该参数配置过低,可能导致数据库报ORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O错误,遇到该问题需将fs.aio-max-nr调整为Oracle建议值3145728。

注:Doc ID 579108.1

kernel.shmmni

该参数为共享内存段的最大数量,缺省值为4096 ,一般情况下无需调整。

vm.nr_hugepages

该参数指定采用大页内存,大页内存数量,单位为个数。

| 作者简介

杨禹航·沃趣科技高级数据库技术专家

熟悉Oracle数据库内部机制,丰富的数据库及RAC集群层故障诊断、性能调优、OWI、数据库备份恢复及迁移经验。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏铭毅天下

上线必备 | 高性能ES5.X部署配置清单

| 题记 | 网上当前(截止20170914)流传的各种配置文件普通存在以下问题: 1)版本低,不能和当前版本5.X匹配。 2)5.X的配置本身较1.X,2...

35911
来自专栏用户画像

7.4.1 程序查询方式

信息交换的控制完全由主机执行程序实现,程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)。当主机进行I/O操作时,首先发出询问...

601
来自专栏Java Edge

知识点提纲1. 二叉树的深度数据库:操作系统计算机网络

2987
来自专栏实用工具入门教程

如何部署 Hadoop 集群

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。...

981
来自专栏随心DevOps

进程间通信的历史与未来

- START - 我们都知道线程是共享内存空间的,因此不会发生所谓的通信,而进程则存在如何防止多进程同时访问数据的排他控制问题。 5 种进程间通信的方式 ? ...

34714
来自专栏石瞳禅的互联网实验室

在Go中对gRPC+ProtoBuf与Http+Json进行基准测试

服务之间通信的最简单的解决方案是使用JSON over HTTP。尽管JSON具有许多明显的优点(比如它具有很好的可读性,易于理解,且通常性能良好),但它还是有...

621
来自专栏用户2442861的专栏

高性能网络编程4--TCP连接的关闭

TCP连接的关闭有两个方法close和shutdown,这篇文章将尽量精简的说明它们分别做了些什么。

772
来自专栏用户2442861的专栏

高性能网络编程2----TCP消息的发送

http://blog.csdn.net/russell_tao/article/details/9370109

712
来自专栏纯洁的微笑

springboot(十九):使用Spring Boot Actuator监控应用

微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了...

3077
来自专栏desperate633

TCP协议浅析TCP概述TCP可靠数据传输TCP流量控制TCP连接管理

上图我们进行一个分析,以便搞清楚tcp序列号和ack的应用 首先,hostA作为发送方给B发送数据,随机选择一个序列号seq = 42,也就是这段segmen...

632

扫码关注云+社区