欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Linux x86 and x86-64 系统中的SHMMAX最大值

程序员文章站 2024-02-17 17:14:10
...

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