ESXi's real-time capability is critical for edge deployments. Telco 5G vRAN, PLC for robotics, and VPR in power substations require real-time capabilities. ESX 7.0.3 and newer versions reduce compute and I/O latency and interference to real-time workloads. However, for maximum performance, consider platform, hypervisor, low-latency virtual machines, guest OS, CPU and memory reservations, isolating vCPUs, and real-time applications.
The growth in edge deployments continues to ramp up and the real-time/low latency capability of ESXi is extremely critical to supporting a good portion of this growth. Today, several verticals are taking advantage of or looking to take advantage of ESXi’s support of Guest OS with real-time kernels supporting real-time applications. There is the Telco 5G vRAN (virtual Radio Access Network) use case which is the main driving force behind ESXi’s support for Guest OS running real-time applications. There are also the Programmable Logic Controllers (PLC) for robotics used in manufacturing and the Virtual Protection Relay (VPR) in power substations that require real-time capabilities.
Since the introduction of ESX 7.0, each release has provided more enhancements in reducing compute and I/O latency and reducing OS interference (also called “jitter”) to real-time workloads. These optimizations provide a consistent runtime environment. But ESXi is only a portion of the runtime environment. To maximize the performance of real-time applications we need to consider the following:
Platform - Host BIOS settings
Hypervisor - ESXi and Cluster configuration
Low-latency Virtual machines with CPU and memory reservations plus other settings
Guest OS with RT kernel and OS profile settings
Isolate vCPUs from non-RT workloads
Applications need to be real-time aware (Pre-allocate memory, CPU affinity, RT policy/priority) – it is beyond the scope of this document in addition to being the responsibility of the application vendor.
For benchmarking, we used the Cyclictest software. Cyclictest is one of the most frequently used tools for evaluating the relative performance of real-time systems. Cyclictest accurately and repeatedly measures the difference between a thread’s intended wake-up time and the time at which it wakes up to provide statistics about the system’s latencies. Test results for ESXi 7.0.3 and ESXi 8.0 Beta are documented in Digitalization of Power Substations - ESXi Real-Time Configuration, Tuning, and Testing, along with a brief description of the lab and settings used for the Host BIOS, ESXi, Virtual machines, and Guest OS with RT kernel.