By Benjamin Hoflich
We have recently published a paper detailing an investigation of enterprise workload performance on Kubernetes with CPU limits. This paper uses the open-source Weathervane 2 benchmark to compare the performance of an enterprise web application running on Kubernetes clusters deployed on VMware vSphere 7.0 Update 2 and on a bare-metal server. The Weathervane benchmark uses Kubernetes CPU limits as part of its core design, and those limits have a dominant impact on the configurations and results in the paper.
Initial performance results on the bare-metal cluster were unexpectedly poor and an investigation determined this was due to over-throttling of the application server pods. In order to improve the bare-metal results, several adjustments were made, including the enablement of Kubernetes CPU Manager policies and the modification of the workload to create a new Weathervane benchmark configuration size. Additional bare-metal tests were run with simultaneous multi-threading (SMT) turned off.
This eventually resulted in a comparison where the bare-metal cluster could perform equivalently to the vSphere cluster at up to sixteen application instances.
The vSphere cluster results were excellent with both the original and the modified workload. On the system under test—a Dell PowerEdge R7525 with AMD EPYC 7742 CPUs—impressive Weathervane 2 benchmark WvUsers scores were achieved at 194,813 WvUsers for the small2 configuration size and 189,256 WvUsers for the small2-applimit2 configuration size.
In a scale-out test (shown in figure 2 from the paper), after the significant adjustments were made for the bare-metal setup to improve performance, we saw similar performance scores between the two environments, with vSphere able to scale out to slightly more application instances.
For more details of this investigation and results, please read the paper Enterprise Workload Performance on Kubernetes with CPU Limits.