Shmmax maximum value in Linux x86 and x86-64 systems
Reference text:
Maximum SHMMAX values for Linux x86 and x86-64 (document ID 567506.1)
Goal:
Problem 1:32-bit (x86) maximum value in Linux system systems?
Problem 2:64-bit (x86-64) maximum value in Linux system systems?
Solution:
Answer 1:
Oracle Global Customer Support official recommendation SHMMAX The maximum value is less than 4GB, or 4294967295
The maximum size of a shared memory segment is limited by the available user addressing space. In the 32bit system, it is 4GB.
Answer 2:
Oracle Global Customer Support official recommendation SHMMAX The maximum value is 1/2 of physical memory
The maximum size of a shared memory side is limited by the available user addressing space. In 64bit systems, this theoretical value is 2 of the 64-time Square. Therefore, the theoretical limit of Shmmax is the size of the physical memory. However, the actual use of all memory as Shmmax can lead to a potential condition: no memory can be used to do anything else.
Therefore, a more ideal physical limit for SHMMAX is physical memory -2gb
In an Oracle DB environment, this physical limitation still causes insufficient memory to be used for other required functions (functions). Therefore, the general "Oracle maximum" for SHMMAX is 1/2 of the physical memory. Many Oracle customer a higher fraction, at their discretion
Occasionally, the customer mistakenly thinks: According to the recommended settings SHMMAX is used to limit the entire SGA, which is not correct. Depending on the recommended settings, Shmmax will only cause some shared memory segments to be used on the total SGA. For details, see the MOS article:
Document 15566.1, "SGA, SHMMAX, semaphores and Shared Memory explained"
In memory configuration, there is also the kernel parameter kernel.shmall, which is the size of all shared memory that the system can use at a time, in page units
See MOS article:
Document 301830.1 upon startup of Linux database get ora-27102:out of memory linux-x86_64 Error:28:no space left on Dev Ice