【翻译mos文章】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

你可能感兴趣的:(linux)