SHMMAX-阿里云开发者社区

开发者社区> 数据库> 正文

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 检查。

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












本文转自东方之子736651CTO博客,原文链接:http://blog.51cto.com/ecloud/1621666 ,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章