When using the Memory Tiering over NVMe feature in vSphere 9.0, you observe the following behavior:
VMware vSphere ESXi 9.x
This behavior is typically not a defect, but a result of the ESXi VMkernel's selective tiering logic and VM-level configuration constraints:
To resolve this issue or confirm if the behavior is expected, follow these troubleshooting steps:
1. Verify VM Compatibility
Ensure the RHEL 8 virtual machines are not using settings that conflict with Software Memory Tiering:
• Latency Sensitivity: Right-click the VM > Edit Settings > VM Options > Advanced. Ensure Latency Sensitivity is set to Normal. If set to High, the VM is ineligible for tiering.
• Memory Reservation: Ensure "Reserve all guest memory" is unchecked in the VM Memory settings.
• Virtual Hardware Virtualization (VHV): Check if vhv.enable = "TRUE" is set in the Advanced Configuration. In vSphere 9.0, VHV-enabled VMs cannot participate in tiering.
2. Check for Manual Deactivation
Verify that tiering hasn't been manually disabled via a VMX parameter:
1. Power off the VM.
2. Navigate to Edit Settings > VM Options > Advanced > Edit Configuration.
3. Look for the attribute: sched.mem.enableTiering.
4. If the value is FALSE, change it to TRUE or remove the entry to use the host default.
3.Analyze Real-Time Tiering Statistics
Use the ESXi command line to verify the "Active" vs. "Consumed" memory state of the VM:
bash
memstats -r vmtier-stats -u mb -s name:memSize:active:tier1Target:tier1Consumed
• If active memory is nearly equal to memSize, the VMkernel is correctly keeping the pages in DRAM to prevent performance degradation.
• If tier1Target is 0 despite the host being under memory pressure, check for the configuration blocks mentioned in Step 1.