Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1193173
  • 博文数量: 245
  • 博客积分: 10185
  • 博客等级: 上将
  • 技术积分: 2744
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-30 17:07
文章分类

全部博文(245)

文章存档

2015年(1)

2014年(1)

2013年(1)

2012年(1)

2011年(37)

2010年(20)

2009年(14)

2008年(38)

2007年(88)

2006年(44)

分类: Oracle

2007-05-12 22:07:22

下面是Oracle 文档上的解释,

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,需要设置这个参数.
关于其他几个参数的设置,参见exitgogo的文章


---------------------------------------------------------------------
5:设置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 检查。

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

更多解释及pmap的使用,请参见eygle的文章







阅读(2129) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~