关于Linux下kernel.shmmax的设置问题

57 篇文章 1 订阅
 按照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 检查。

  建议重启系统再继续下面的操作。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值