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

内核的 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参数的设置。

配置信号灯( 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
------------86620

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

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

# cat /proc/sys/kernel/sem
250 32000 100 128

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

修改 /etc/sysctl.conf

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

执行 sudo sysctl -p

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

Oracle 性能优化之内核的shmall 和shmmax 参数相关推荐

  1. shmmax单位_linux 内存管理——内核的shmall 和shmmax 参数

    内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好. SHMMIN= 最小的内存seg ...

  2. oracle性能优化之awr分析

    oracle性能优化之awr分析 作者:bingjava 最近某证券公司系统在业务期间系统运行缓慢,初步排查怀疑是数据库存在性能问题,因此导出了oracle的awr报告进行分析,在此进行记录. 导致系 ...

  3. Oracle执行exists优化,PHP_解决Oracle性能优化中的问题, 在Oracle性能优化时,用exists - phpStudy...

    在Oracle性能优化时,用exists替代in,用表链接替代exists,关于前者,一般效果比较明显,exists效率明显比in高,但是如果要想表连接的效率比exists高,必须在from子句中,将 ...

  4. oracle性能优化总结

    Oracle性能优化 一.数据库优化的方向 1.程序设计(这点最重要,如果程序本身设计有问题,再怎么进行下面的优化都是徒劳的.) 2.操作系统优化 3.硬件优化 4.数据库优化 5.SQL语句优化 二 ...

  5. 如何“暴力破解”Oracle性能优化的极端问题(附精彩案例解读)

    云和恩墨大咖系列报道 2019数据技术嘉年华于11月16日在京落下了帷幕.大会历时两天,来自全国各地上千名学术精英.数据库领袖人物.数据库专家.技术爱好者在这里汇聚一堂,围绕"开源 • 智能 ...

  6. 春节福利:《Oracle性能优化与诊断案例精选》电子版首次公开下载

    值此猪年春节到来之际,恩墨云服务团队恭祝大家新年快乐,心想事成.同时我们也为大家准备了一份新年礼物,首次公开Eygle和600主编的<Oracle性能优化与诊断案例精选>电子版下载. 本书 ...

  7. 《Oracle性能优化与诊断案例精选》——2.3 衣带渐宽终不悔

    本节书摘来自异步社区出版社<Oracle性能优化与诊断案例精选>一书中的第2章,第2.3节,作者:盖国强 , 李轶楠 ,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  8. Oracle性能优化 以及 库缓存命中率及等待事件

    http://www.cnblogs.com/hyddd/archive/2009/08/30/1556939.html 前言 最近hyddd一直看Oracle的资料,今天特地总结一下这段时间了解到的 ...

  9. Oracle性能优化专题

    Oracle优化是开发人员必须掌握的技能,与其说是技能不如是开发基本.而且在面试过程中这个话题也常常被问到,有一两年工作经验的童鞋面试这个问题是肯定要被问到的,如果知识简单的CRUD实现功能,则是没有 ...

最新文章

  1. java列表包含列表_java – 包含另一个列表的列表
  2. 十七、生产者消费者问题
  3. 添加RichEdit控件导致MFC对话框程序无法执行的解决方法
  4. 测试lazy_enable_if的所有变体
  5. C#处理微信json(将JSON转换为对象)
  6. WCF配置报错 在 ServiceModel 客户端配置部分中,找不到名称 和协定
  7. 辽源天气预报软件测试,辽源天气预报15天
  8. 贺利坚老师汇编课程37笔记:把六个字符串里的头一个字母改写成大写字母
  9. 【转】互联网架构的三板斧
  10. 计算机二级java难不_计算机二级java含金量如何 对就业有帮助吗
  11. 十大算法(动图讲解)❤️超详细!
  12. 这应该是把计算机网络五层模型讲的最好是文章了,看不懂你打我
  13. 【村长的刷题手册-1】LeetCode刷题笔记,不断总结继续出发
  14. Spring源码解析之AOP篇(一)----代理模式详解
  15. Kali linux下拓实N95外置网卡驱动安装教程
  16. 分水岭matlab仿真,正确使用Matlab分水岭算法对细胞进行分割
  17. 2月15日市场游资操作情况以及龙虎榜
  18. CESM学习笔记(CIME)1 :介绍和query_config
  19. 项立刚:乔布斯展现了人类无尽的创造力
  20. 观看M-studio的unity中文教程(开发一款移动设备运行的2D游戏)学习记录

热门文章

  1. MongoDB 教程四: 高级更改操作
  2. jquery监听窗口大小改变事件jquery.resizeend
  3. 视频跟踪——meanshift算法
  4. [【转载】 linux进程间通信方式
  5. oracle execute immediate用法
  6. 安装Vmware-tools时CD/DVD找不到Vmware-tools压缩包
  7. LeetCode 617. Merge Two Binary Trees
  8. 宠物商店 三层关系小结 显示宠物列表
  9. 枚举类型 c# 1201
  10. python 元组与列表的异同点 1125