Get up to 2.8x the NGINX Performance By Adding Intel® QuickAssist Technology to Google Cloud N2 Virtual Machines Featuring 3rd Gen Intel® Xeon® Scalable Processors

NGINX:

  • Small VMs: Up to 2.78 times the performance using Intel® QAT standard N2 VMs with 4 vCPUs vs. standard N2 VMs without QAT.

  • Medium VMs: Up to 2.86 times the performance using Intel® QAT on high CPU N2 VMs with 32 vCPUs vs. high CPU N2 VMs without QAT.

  • Large VMs: Up to 2.78 times the performance using Intel® QAT on High CPU N2 VMs with 48 vCPUs vs. High CPU N2 VMs without QAT.

author-image

Par

For Standard and High CPU Virtual Machines, Using Intel® QAT Improved Performance Across Multiple VM Sizes

Organizations of all stripes provide safe, encrypted network connections using SSL/TLS so consumers know they can trust sending their data over the Internet. NGINX is an open-source web server application that can function as a reverse proxy, load balancer, and mail proxy. If your organization runs NGINX on Google Cloud, VMs with 3rd Gen Intel® Xeon® Scalable processors provide features that can improve performance.

Users can install Intel® QuickAssist Technology (Intel® QAT) on Google Cloud N2 virtual machines enabled by 3rd Gen Intel® Xeon® Scalable Processors. Intel® QAT and Intel® QAT Engine (OpenSSL Engine) accelerate hardware and software based on vectorized instructions to speed cryptographic operations and allow more users to connect at a time. We tested NGINX performance at small, medium, and large VM sizes for two N2 VM types: Standard and High CPU. Our results show that for multiple VM types, and with every size, adding Intel® QAT resulted in more connections per second for NGINX workloads.

Better Performance Across Small, Medium, and Large VMs

Across small VM sizes, using Intel® QAT with 3rd Gen Intel® Xeon® Scalable processors boosted NGINX performance significantly over the VMs without QAT (see Figure 1). At 4 vCPUs, enabling Intel® QAT increased connections per second by up to 2.76 times, and at 8 vCPUs, Intel® QAT offered up to 2.74 times the connections per second.

Across medium VM sizes and N2 VM type (either Standard or High CPU), adding Intel® QAT on 3rd Gen Intel® Xeon® Scalable processors improved NGINX connections per second—by up to 2.86 times (see Figure 2).

For 48vCPU virtual machines, enabling Intel® QAT delivered 2.76 times the connections per second on the N2 Standard VM and 2.78 times the connections per second on the N2 High CPU VM. Enabling Intel® QAT on 64vCPU VMs also improved performance by 2.27 and 2.55 times the connections per second, respectively.

Figure 1. Relative NGINX performance, in connections per second, that small VMs (Standard and High CPU) handled with and without Intel® QAT.

Figure 2. Relative NGINX performance, in connections per second, that medium virtual machines (Standard and High CPU) handled with and without Intel® QAT.

Figure 3. Relative NGINX performance, in connections per second, that large VMs (Standard and High CPU) handled with and without Intel® QAT.

Conclusion

Across the Standard and High CPU Google Cloud VMs with 3rd Gen Intel® Xeon® Scalable processors we tested, using Intel® QuickAssist Technology with QAT Engine (for OpenSSL) accelerated NGINX performance, increasing the number of connections per second the web server could handle by up to 2.86 times the same VMs without Intel® QAT.

Learn More

To begin running your NGINX workloads on Google Cloud N2 VMs with 3rd Gen Intel® Xeon® Scalable processors, visit https://cloud.google.com/compute/docs/general-purpose-machines#n2_machines.

All tests by Intel on 2/12/22 on GCP/us-centra1-a. All tests: Ubuntu 20.04.3 LTS 5.11.0-1028-gcp, v1.24.0.intel-17-g4e2441b6, gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, ldd (Ubuntu GLIBC 2.27-3ubuntu1.4), Client Server:n2-standard-128, Number of Clients:2, Run Iterations:3, Cipher: AES128-GCM-SHA256. All QAT testing: async mode Nginx w/ QATEngine. All VMs used ICX x86_64 CPUs. VM details: n2-standard-4: 4 vCPUs, 16GB RAM; n2-highcpu-4: 4 vCPUs, 4GB RAM; n2-standard-8: 8 vCPUs, 32GB RAM; n2-highcpu-8: 8 vCPUs, 8GB RAM; n2-standard-16: 16 vCPUs, 64GB RAM; n2-highcpu-16: 16vCPUS, 16GB RAM; n2-standard-32: 32 vCPUs, 128GB RAM; n2-highcpu-32: 32 vCPUs, 32GB RAM; n2-standard-48: 48 vCPUs, 192GB RAM; n2-highcpu-48: 48 vCPUs, 48GB RAM; n2-standard-64: 48 vCPUs, 256GB RAM; n2-highcpu-64: 48 vCPUs, 64GB RAM.