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