GPFS and memory
GPFS™ uses three areas of memory: memory allocated from the kernel heap, memory allocated within the daemon segment, and shared segments accessed from both the daemon and the kernel.
- Memory allocated from the kernel heap
- GPFS uses kernel memory for control structures such as vnodes and related structures that establish the necessary relationship with the operating system.
- Memory allocated within the daemon segment
- GPFS uses daemon segment memory
for file system manager functions. Because of that, the file system
manager node requires more daemon memory since token states for the
entire file system are initially stored there. File system manager
functions requiring daemon memory include:
- Structures that persist for the execution of a command
- Structures that persist for I/O operations
- States related to other nodes
The file system manager is a token manager, and other nodes may assume token management responsibilities; therefore, any manager node may consume additional memory for token management. For more information, see Using multiple token servers in IBM Spectrum Scale: Advanced Administration Guide.
- Shared segments accessed from both the daemon and the kernel
- Shared segments
consist of both pinned and unpinned memory that is allocated at daemon
startup. The initial values are the system defaults. However, you
can change these values later using the mmchconfig command.
See Cluster configuration file. The pinned memory is called the pagepool and is configured by setting the pagepool cluster configuration parameter. This pinned area of memory is used for storing file data and for optimizing the performance of various data access patterns. In a non-pinned area of the shared segment, GPFS keeps information about open and recently opened files. This information is held in two forms:
- A full inode cache
- A stat cache