SHMMAX

 SHMMAX Available physical memory Defines the maximum allowable size of one shared memory segment.The SHMMAX setting should be large enough to hold the entire SGA in one shared memory segment. A low setting can cause creation of multiple shared memory segments which may lead to performance degradation.

  按照oracle的解释,SHMMAX应该比SGA区大啊.否则会引发性能的下降!

  shmmax 指的是单个共享内存段的最大尺寸, 设置shmmax=1G,sga分配了1.2G,当启动实例的时候就分配 2 块共享内存给Oracle .

  如果物理内存是 2 G, 假设这台DB Server上还有Apache 在运行,那么shmmax 中设置的内存也会被Apache 来使用,那么分配的 2 块共享内存段给Oracle 是否就是 2 * 1G , 还是仅仅满足 SGA需求的 1.2 G就停止分配 , 其他的内存的一部分分配给Oracle PGA 和软件 Apache 来使用 ?

  想到这个问题,是因为在安装oracle时,常常需要修改内核文件/etc/sysctl.conf,需要设置这个参数.

  设置oracle共享内存段:

  以root身份进行修改 /etc/sysctl.conf 这个文件,加入以下的语句:

  kernel.shmmax = 2147483648
  kernel.shmmni = 4096
  kernel.shmall = 2097152
  kernel.sem = 250 32000 100 128
  fs.file-max = 65536
  net.ipv4.ip_local_port_range = 1024 65000

  注:

  sem 4个参数依次为SEMMSL(每个用户拥有信号量最大数);
  SEMMNS(系统信号量最大数);
  SEMOPM(每次semopm系统调用操作数);
  SEMMNI(系统辛苦量集数最大数)。
  Shmmax 最大共享内存2GB
  物理内存如果小的话可以设置成 536870912。
  Shmmni 最小共享内存 4096KB。
  Shmall 所有内存大小。

  一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是 2G,则可以设置最大共享内存为 1073741824,如上;如物理内存是 1G,则可以设置最大共享内存为 512 * 1024 * 1024 = 536870912;以此类推。

  在redhat上最大共享内存不建议超过

  4*1024*1024*1024-1=4294967295

  设置完成后用命令 more /etc/sysctl.conf |grep kernel.s 检查。

  建议重启系统再继续下面的操作。

时间: 2024-10-10 15:45:12

SHMMAX的相关文章

【翻译自mos文章】SGA_TARGET与SHMMAX的关系

SGA_TARGET与SHMMAX的关系 参考原文: Relationship Between SGA_TARGET and SHMMAX (文档 ID 1527109.1) 适用于: Oracle Database - Enterprise Edition - Version 10.1.0.2 to 11.2.0.3 [Release 10.1 to 11.2] Information in this document applies to any platform. 目的: 解释了参数文件中

kernel.shmmax ,kernel.shmmni 和kernel.shmall

kernel.shmmax = 2147483648//  该参数定义了共享内存段的最大尺寸(以字节为单位).其值应>=sag_max_size初始化参数的大小,否则SAG由多个内存段构成,效率降低,还要不小于物理内存的一半,默认情况下在32位x86系统中,Oracle SGA最大不能超过1.7GB.缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G kernel.shmmni = 4096                       //  这个内核参数用于设置系统范围内共

【翻译mos文章】Linux x86 and x86-64 系统中的SHMMAX最大值

Linux x86 and x86-64 系统中的SHMMAX最大值 参考原文: Maximum SHMMAX values for Linux x86 and x86-64 (文档 ID 567506.1) 目标: 问题1:32-bit (x86) Linux system 系统中的最大值? 问题2:64-bit (x86-64) Linux system系统中的最大值? 解决方案: 答案1: Oracle Global Customer Support 官方推荐 SHMMAX 的最大值是小于

[转载] Docker里莫名其妙的/proc/sys/kernel/shmmax

原文: http://www.weibo.com/p/1001603829422523342026 由docker ipc namespace引起的. Docker部署重型应用,比如数据库,是否有坑?今天还真发现了一个 在部署数据库的时候,可能需要调整一些内核参数,比如/proc/sys/kernel/shmmax这个参数,这个参数是用来限制内核共享内存大小.共享内存这个东西有什么用呢?比如Oracle的SGA实现就是使用的共享内存,多个Session可以共享一块公共的内存空间,从而降低整体内存

linux内核值shmmax问题

问题:(rac安装过程中grid检测) Please run the following script on each node as "root" user to execute the fixups:'/tmp/CVU_11.2.0.4.0_grid/runfixup.sh'    然后我根据提示去运行脚本    脚本运行提示如下:The value for shmmax in response file is not greater than value of shmmax fo

【翻译mos文章】Linux x86 and x86-64 系统SHMMAX最大

Linux x86 and x86-64 系统SHMMAX最大值 参考原始: Maximum SHMMAX values for Linux x86 and x86-64 (文件 ID 567506.1) 目标: 问题1:32-bit (x86) Linux system 系统中的最大值? 问题2:64-bit (x86-64) Linux system系统中的最大值? 解决方式: 答案1: Oracle Global Customer Support 官方推荐 SHMMAX 的最大值是小于4G

(转)linux 内存管理——内核的shmall 和shmmax 参数

内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好. SHMMIN= 最小的内存segment的大小 SHMMNI= 整个系统的内存segment的总个数 SHMSEG= 每个进程可以使用的内存segment的最大个数 配置信号灯( semphore )的参数: SEMMSL= 每个semphore set里面的semphore数量 -----> 这个设置大于你的process的个数吧,

Linux内存管理-内核的shmall和shmmax参数(性能调优)(转)

内核的shmall和shmmax参数 SHMMAX=配置了最大的内存segment的大小:这个设置的比SGA_MAX_SIZE大比较好. SHMMIN=最小的内存segment的大小 SHMMNI=整个系统的内存segment的总个数 SHMSEG=每个进程可以使用的内存segment的最大个数 配置信号灯( semphore )的参数: SEMMSL=每个semphore set里面的semphore数量:这个设置大于你的process的个数吧,否则你不得不分多个semphore set,好像

ipcs、ipcrm、sysresv、kernel.shmmax

ipcs.ipcrm.sysresv.kernel.shmmax 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① ipcs的使用 ② ipcrm释放oracle内存段 ③ sysresv的使用 ④ 内核参数kernel.shmmax ⑤ 如何快速的清理Oracle的进程 ⑥ 其它维护操作   Tips: ① 本文在itpub(http://blog.it