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 的最大值是小于4gb,或者4294967295
一个共享内存段的最大大小受可用的用户寻址空间限制。在32bit系统中,是4gb。
答案2:
oracle global customer support 官方推荐 shmmax 的最大值是 物理内存的1/2
一个共享内存端的最大大小受可用的用户寻址空间限制。在64bit系统中,这个理论值是2的64次方。因此,shmmax的理论限制值是物理内存的大小。但是,,实际地使用全部内存作为shmmax可能导致一个潜在的状况:没有内存可以用来干别的事情。
因此,对 shmmax 更为理想的 物理限制 是 物理内存-2gb
在oracle db环境中,这个物理限制 依然导致没有足够的内存用来做其他需要的功能(functions)。因此,一般 "oracle maximum" for shmmax 是 物理内存的1/2。很多oracle 客户a higher fraction, at their discretion
偶尔,客户会错误的认为:根据推荐设置 shmmax 是用来限制全部的sga,这是不正确的。根据推荐设置shmmax只会导致一些共享内存段被用在total sga上。关于细节信息,请看mos文章:
document 15566.1, "sga, shmmax, semaphores and shared memory explained"
在内存配置上,同样需要考虑的还有 内核参数kernel.shmall,该参数是系统一次能使用的所有的共享内存的大小,以page为单位
请看mos文章:
document 301830.1 upon startup of linux database get ora-27102: out of memory linux-x86_64 error: 28: no space left on device 和推荐。
Oracle 11g 在RedHat Linux 5.8_x64平台的安装手册
Linux-6-64下安装Oracle 12C笔记
在CentOS 6.4下安装Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虚拟机中安装步骤
Debian 下 安装 Oracle 11g XE R2
本文永久更新链接地址:











