Summary
Under certain circumstances, the ESXi operating system may temporarily require most, if not all, of the RAM available on the system, leaving no available memory for allocations by the Fusion ioMemory VSL software.
- For example, a host running VMWare View may need to rapidly provision multiple VDI images. This may happen so quickly that the host memory is temporarily exhausted.
If the Fusion ioMemory VSL software is unable to allocate RAM, the Fusion ioMemory device(s) may go offline or stop processing requests. To address this use case, follow the procedure and guidelines below for ensuring the Fusion ioMemory VSL Software has sufficient memory.
Affected Versions
Product: ioMemory VSL Software
Versions: All
Platforms: All supported ESXi versions.
Detailed Description/Resolution
Determining the required memory for the VSL driver
The first step is to determine the ioMemory VSL memory requirements. As a starting point, we recommend allocating RAM available to the VSL driver equal to 0.5% of the total Fusion ioMemory device capacity (see the Example Scenario below for more information on this calculation). The exact amount of RAM needed by the VSL driver is workload dependent, and the reservation amount may require tuning for specific use cases. Consult the RAM requirements in the Fusion ioMemory VSL Release Notes for an idea of how much RAM the VSL driver may use in worst-case scenarios.
Example Scenario
1000GB device capacity * 0.5% of device capacity ~ 5GB of RAM equivalent.
Setting the Memory Reservation for the VSL driver
There are two options for implementing a memory reservation. The first is recommended when using ESXi 5.x, and the second is recommended when using ESXi 6, as the first option is not available there.
Option 1: Modifying the VMware Resource Pool to Limit VM Memory (using ESXi 5.x)
Use this method to limit the total memory available to VMs if you are using ESXi 5.x
Example Scenario
The server has 36GB total memory capacity on the ESXi host, and you have determined that a 5GB reservation is needed for the VSL driver = 31GB of memory for the guest VMs. The new value under Limit in Memory Resources would be 31GB.
To modify the user pool, follow the steps below, using the vSphere client:
- Click the Summary tab in the vSphere client to view the current memory usage and capacity.
- Also visible is the total Fusion ioMemory device datastore capacity,make note of that capacity.
- Navigate to the user Resource Allocation window:
- Select the host -> Configuration tab -> Software pane -> System Resource Allocation link -> Advanced link
- The System Resource Pools appear.
- Select the user node under the host tree
- The details for the user appear below,click the Edit settings link
- The user Resource Allocation window appears
- Select the host -> Configuration tab -> Software pane -> System Resource Allocation link -> Advanced link
- Limit the Memory allocated to the VMs:
- Under Memory Resources,clear the Unlimited checkbox so you can set the limit for memory resource allocation.
- You can now set the limit on VM memory consumption.
For more information on modifying the user pool, see VMWare Documentation:
Option 2: Modifying the maximum limit for each VM on the host (using ESXi 5.x or ESXi 6.x)
Use this method to limit the maximum memory for each VM individually.
Example Scenario
The server has 36GB total memory capacity on the ESXi host and you have determined that a 5GB reservation is needed for the VSL driver = 31GB of memory for the guest VMs. If there are two VMs on the host, set the limit for both VMs so the limit is 31 GB or less, such as 10 GB for the first VM and 20 GB for the second VM.
Setting the limit for each VM on the host.
To set the maximum limit for each VM on the host:
- Browse to the virtual machine in your vSphere client.
- Click on Edit Settings for the virtual machine.
- Navigate to the Resources tab under the settings for the virtual machine.
- Uncheck Unlimited checkbox and set the limit of memory to desired amount.
- This cannot be lower than the reservation
- Save and Repeat for each virtual machine on the host.
For more information on changing resource allocation limits, see VMWare documentation: