Persistent memory (PMEM) is a new technology that has the characteristics of memory but retains data through power cycles. PMEM bridges the gap between DRAM and flash storage and offers several advantages over current technologies like:
- DRAM-like latency and bandwidth
- CPU can use regular load/store byte-addressable instructions
- Persistence of data across reboots and crashes
These characteristics make PMEM very attractive for a varied set of applications and scenarios.
Currently, there are two PMEM solutions available in the market:
- NVDIMM-N by DELL EMC and HPE: NVDIMM-N is a type of DIMM that contains both DRAM and NAND-flash modules on the DIMM itself. Data is transferred between those two modules at startup, shutdown, or any power loss event. The DIMMs are backed by a battery power source on the mainboard in case of power loss. Currently, both HPE and DELL EMC are offering 16 GB NVDIMM-Ns.
- Scalable PMEM by HPE: This combines HPE SmartMemory DIMMs with NVMe drives and battery backup to create logical NVDIMMs. Data is transferred between DIMMs and NVMe drives. This technology can be used to create large-scale PMEM systems.
The rest of the paper is organized as follows:
- We explain how PMEM can be configured and used in a vSphere environment.
- We describe our experimental setup and various PMEM configurations used.
- We show how applications with different characteristics can take advantage of PMEM in vSphere. Below are some of the use cases:
- How PMEM device limits can be achieved under vSphere with little to no overhead of virtualization. We show the virtual-to-native ratio along with raw bandwidth and latency numbers from fio, an I/O microbenchmark.
- How traditional relational databases like Oracle can benefit from using PMEM in vSphere.
- How scaling-out VMs in vSphere can benefit from PMEM. We used Sysbench with MySQL to show such benefits.
- How modifying applications (PMEM-aware) can get the best performance out of PMEM. We show performance data from such applications, including an OLTP database like SQL Server and an in-memory database like Redis.
- Using vMotion to migrate VMs with PMEM which is a host-local device just like NVMe SSDs. We also characterize, in detail, vMotion performance of VMs with PMEM.
- We outline some best practices on how to get the most out of PMEM in vSphere.