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:
  1. A full inode cache
  2. A stat cache