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

相关内容