Scalable Database Server, HiRDB Version 8 System Definition
![[Contents]](FIGURE/CONTENT.GIF)
![[Index]](FIGURE/INDEX.GIF)
![[Back]](FIGURE/FRONT.GIF)
- 85) SHMMAX maximum-shared-memory-segment-size
<unsigned integer> (MB)
- 32-bit mode: ((6-2047))
- 64-bit mode: ((6-4194304))
- Specifies, in megabytes, the maximum segment size for the shared memory for global buffer.
- Specification guidelines
- For this operand, specify a value that is equal to or less than the value specified for the OS's operating system parameter shmmax (shminfo_shmmax for Solaris, and SHMMAX for Linux). If you change the shmmax value, also change the value of this operand. For the method of estimating operating system parameters, see the HiRDB Version 8 Installation and Design Guide.
- HiRDB allocates shared memory segments for global buffers up to the size specified for this operand. If the total size of the global buffers allocated to RDAREAs inside the server machine exceeds the value specified for this operand, multiple shared memory segments are allocated. If the global buffers are assigned to multiple shared memory segments, the overhead for accessing the shared memory segments increases, causing throughput to decrease. Therefore, try to estimate for this operand a value that enables all of the global buffers to fit inside a single shared memory segment.
You can use the pdls -d mem command to check whether all of the global buffers have been assigned to a single shared memory segment. When there is one server per unit, two pieces of shared memory segment information are displayed. Therefore, when there are multiple servers per unit, all of the global buffers have been assigned to a single shared memory segment if segment-information-count - 1 = server-count is displayed.
- Allocate at least two shared memory segments (for the unit controller, server, and global buffers) to each unit. You can allocate up to16 shared memory segments.
- When global buffers are dynamically changed, new shared memory segments are allocated and the dynamically changed global buffers are assigned to these new shared memory segments. Use the pd_max_add_dbbuff_shm_no operand to specify the maximum number of shared memory segments that can be allocated.
- Notes
- When the following condition is satisfied, the required shared memory cannot be allocated, and thus HiRDB cannot be started:
SHMMAX-value > shmmax-value
- The number of shared memory segments is restricted by the OS's operating system parameters shmmni and shmseg (shminfo_shmmin and shminfo_shmseg for Solaris, and SHMMIN and SHMSEG for Linux). Consequently, when you are allocating multiple shared memory segments for global buffers, you may not be able to allocate shared memory beyond these restrictions. In this case, take one of the following actions:
Reduce the number of global buffer sectors.
Increase the values of shmmni and shmseg.
Delete unnecessary global buffers.
- For details on the shmmax, shmmni, and shmseg parameters, see the applicable OS manual.
- Relationship to other operands
- This operand is related to the following operands.
- pd_dbbuff_modify
- pdbuffer
- pd_max_add_dbbuff_no
- pd_max_add_dbbuff_shm_no
All Rights Reserved. Copyright (C) 2007, Hitachi, Ltd.