Web Service tests were performed on bare-metal single socket servers with equivalent memory, networking and storage configurations for each of the platforms shown.
The tests use WRK2 which is part of the DeathStarBench suite as the load generator. WRK2 is modified to be an open-loop load generator, which ensures that new requests are sent out according to the schedule even if responses of previous requests have not been received.
Every run starts by initializing the dataset which includes registering users and constructing the social-graph for the application. The tests are run with multiple threads, multiple clients per thread, and constant throughput which is increased gradually for each run by dialing up the requests per second. These parameters are selected to maximize the CPU utilization for the number of cores in the system under test. The number of replicas of each pod, CPU and memory allocation for the pods is tuned to achieve the lowest P99 latency and highest throughput. Once these parameters are defined, the tests are run on all platforms using the same parameters. Each test is run at least 5 times and the highest P99 latency value among the runs in used in the final comparison.
Fedora 36 (kernel 5.17) was used for the tests. We compared Ampere Altra Max M128-30, AMD EPYC 7763 and Intel Ice Lake 8380 servers (refer to the chart below for results). For each of the tests, similar clients were used to generate requests for the web service.
The WordPress benchmarking was done on Ampere Altra and X86 VMs with the following configuration:
Number of vCPUs: 4
Memory: 16 GB
Boot Volume: 128 GB
Kubernetes Version: 1.23.5
Number of replicas of WordPress: 8
Number of replicas of MySQL: 1
Apache Version: 2.4.51
PHP Version: 7.4.25
WordPress Version: 6.0
The client VM configuration uses:
Memory: 64 GB