9.4. Memory

Red Hat Storage does not consume significant compute resources from the storage nodes themselves. However, read intensive workloads can benefit greatly from additional RAM.

9.4.1. Virtual Memory Parameters

The data written by the applications is aggregated in the operating system page cache before being flushed to the disk. The aggregation and writeback of dirty data is governed by the Virtual Memory parameters. The following parameters can have significant performance impact:
  • vm.dirty_ratio
  • vm.dirty_background_ratio

Table 9.1. Recommended Values for Virtual Memory Parameters

I/O Type Recommended Value Remarks
Large file sequential I/O workloads dirty_ratio = 20, dirty_background_ratio = 10 (default setting) The writeback operations to disk are efficient for this workload therefore the Virtual Memory parameters can have higher values. Higher values for these parameters help reduce fragmentation of large files with thin-provisioned storage..
Random and small file workloads dirty_ratio = 5, dirty_background_ratio = 2 The write operations to disk are less efficient for this workload. Lower values of the Virtual Memory parameters prevent excessive delays during write-back.
Configuring the Virtual Memory Parameters

The Red Hat Storage tuned profiles, rhs-high-throughput and rhs-virtualization, permit custom settings for system parameters in the file /etc/sysctl.conf.

Changing the values of Virtual Memory parameters
Perform the following steps to change the Virtual Memory parameters:
  1. Edit the file /etc/sysctl.conf to update the parameters with the desired values in the file.

    Example 9.1. Update the Virtual Memory Parameters

    vm.dirty_ratio = 5
    vm.dirty_background_ratio = 2
  2. Execute the tuned-adm command to apply these values:
    # tuned-adm profile PROFILE-NAME

    Example 9.2.  Applying Virtual Memory Parameters

    In this example, rhs-high-throughput is the profile which is being activated.
    # tuned-adm profile rhs-high-throughput
  3. Verify the changes made to the virtual Memory parameters.
    # cat /proc/sys/vm/dirty_ratio
    5
    # cat /proc/sys/vm/dirty_background_ratio
    2