千家信息网

Oracle 性能优化之内核的shmall 和shmmax 参数

发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,1. 内核的 shmall 和 shmmax 参数SHMMAX = 配置了最大的内存segment的大小 --> 这个设置的比SGA_MAX_SIZE大比较好。SHMMAX参数:Linux进程可以分配
千家信息网最后更新 2025年11月13日Oracle 性能优化之内核的shmall 和shmmax 参数

1. 内核的 shmall 和 shmmax 参数

SHMMAX = 配置了最大的内存segment的大小 --> 这个设置的比SGA_MAX_SIZE大比较好。

SHMMAX参数:Linux进程可以分配的单独共享内存段的最大值。一般设置为内存总大小的一半。这个值的设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,因此对于安装Oracle数据库的系统,shmmax的值应该比内存的二分之一大一些。

SHMMIN= 最小的内存segment的大小 。

SHMMNI= 整个系统的内存segment的总个数 。设置系统级最大共享内存段数量。Oracle10g推荐最小值为4096,可以适当比4096增加一些。

SHMSEG= 每个进程可以使用的内存segment的最大个数

shmall =是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 90%。例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。

shmall设置共享内存总页数。这个值太小有可能导致数据库启动报错。很多人调整系统内核参数的时候只关注SHMMAX参数,而忽略了SHMALL参数的设置。

2.配置信号灯( semphore )的参数

信号灯semaphores是进程或线程间访问共享内存时提供同步的计数器。

SEMMSL= 设置每个信号灯组中信号灯最大数量, 推荐的最小值是250 。对于系统中存在大量并发连接的系统,推荐将这个值设置为 PROCESSES初始化参数加10

SEMMNI= 设置系统中信号灯组的最大数量。Oracle10g和11g的推荐值为142。

SEMMNS=设置系统中信号灯的最大数量。操作系统在分配信号灯时不会超过LEAST(SEMMNS, SEMMSL*SEMMNI )。事实上,如果SEMMNS的值超过了SEMMSL*SEMMNI是非法的, 因此推荐SEMMNS的值就设置为SEMMSL*SEMMNI 。Oracle推荐SEMMNS的设置 不小于32000 ,假如数据库的PROCESSES参数设置为600,则SEMMNS的设置应为:

SQL> select (600+10)*142 from dual;(600+10)*142------------      8662012345

SEMOPM参数:设置每次系统调用可以同时执行的最大信号灯操作的数量。由于一个信号灯组最多拥有SEMMSL个信号灯,因此有推荐将SEMOPM设置为SEMMSL的值。Oracle验证的10.2和11.1的SEMOPM的配置为100。

通过下面的命令可以检查信号灯相关配置:

# cat /proc/sys/kernel/sem250 32000 100 12812

对应的4个值从左到右分别为SEMMSL、SEMMNS、SEMOPM和SEMMNI

3.修改 /etc/sysctl.conf

kernel.shmmax=15461882265
kernel.shmall=3774873
kernel.msgmax=65535
kernel.msgmnb=65535

执行 sudo sysctl -p

可以使用 ipcs -l 看结果,ipcs -u 可以看到实际使用的情况


本文转自: https://blog.csdn.net/sunansheng/article/details/51889044

感谢原作者

内存 系统 参数 最大 信号 推荐 大小 信号灯 数量 号灯 配置 最小 数据 数据库 进程 内核 个数 灯组 中信 分配 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 微信服务器配置php 南通做网络安全公司 光环无限锁低延迟服务器 系统在与数据库服务器 软件开发小组名字大全 怎么证明服务器是国外的 虹口区什么是软件开发管理 有什么可以做网络安全宣传的活动 竹溪公司软件开发统计 信息的数据库管理模式替代文件 华为服务类网络技术工程师面试 京东上的服务器 数字土地数据库标准 浙江安卓软件开发流程 速达3000服务器起来了没反应 修改数据库的基本语法 北京酷蜂软件开发 联通服务器托管价格 北京微商软件开发公司 中专有计算机网络技术专业的学校 磐石网络技术工资待遇 东营网络安全专业有哪些 java 调用两个数据库 南京车置宝网络技术客服电话 数据库模型是将世界看作 电子商城数据库设计 网易云服务器发生错误下载不了歌 导入sql数据库 无代码软件开发弹窗功能的设计 如何访问服务器命令窗口
0