Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Accelerating Nginx Web Server Performance


Published on

This presentation summarizes test data recently presented at the Nginx User Summit in San Francisco. It shows how user level networking coupled with the right network choices can accelerate web server performance three fold.

Published in: Technology

Accelerating Nginx Web Server Performance

  1. 1. 2015 | 1 Copyright © 2015 Solarflare Communications, Inc. All rights reserved Solarflare Makes the Web Faster: Nginx Acceleration with Solarflare OpenOnload and Flareon 10GbE and 40GbE Server Adapters Bruce Tolley Vice President, Technical and Solutions Marketing, Solarflare Nginx User Summit, San Francisco
  2. 2. 2015 | 2Solarflare Public Executive Summary: Solarflare with OpenOnload Increases Nginx Performance 3X • Solarflare OpenOnload increases Nginx performance 3X over Intel, achieving 10Gbps line rate with only 2 cores, Intel needs 6 cores • The Solarflare Flareon SFN7002 server adapter with Solarflare OpenOnload® can deliver up to a 120% increase in Nginx application performance versus Intel X710 • Solarflare Flareon 7142Q 40 GbE Server Adapter is able to scale Nginx performance significantly, achieving nearly 40 Gbps line rate • Solarflare OpenOnload high-performance, open-source, user-level networking stack enables the Nginx application to achieve higher performance • Bypasses the operating system’s kernel and leverages the advanced functionality of Solarflare server adapters • At both 10 GbE and 40 GbE, Nginx performance is only limited by the bandwidth of the link
  3. 3. 2015 | 3Solarflare Public Scope of the Performance Testing • All data is from tests of short lived, static connections – no long lived connections (e.g. not IP video streaming) • Kernel testing: Nginx, Intel vs. Solarflare • Onload testing: Nginx, Intel vs. Solarflare
  4. 4. 2015 | 4Solarflare Public Solarflare Nginx Performance Testing Setup LAN switch Haswell server running nginx ‘AB’ load generator #1 ‘AB’ load generator #2 ‘AB’ load generator #12 … 12x client load generators 10Gbs 10Gbs 10Gbs 10 or 40Gbs 2.4GHz 2 x 6CPU core with hyper threading RHEL 6 AB ‘Apache bench‘ clients Measured goodput in transactions per sec Different system under test than Slide 6
  5. 5. 2015 | 5Solarflare Public What is OpenOnload • Linux-based, open-source, high-performance application accelerator that delivers low latency and improves application scalability • Presents to the Nginx application a standard BSD sockets API • Requires no modification to the Nginx application for its use • Achieves performance improvements in part by performing network processing at user-level, bypassing the OS kernel entirely on the data path (other improvements on slide 11) • Application and network performance is improved without sacrificing the security and multiplexing functions that the OS kernel normally provides • Experiments described use OpenOnload 201502-u1
  6. 6. 2015 | 6Solarflare Public Improvements to Onload • Userspace TCP stack • Avoids system call overheads • OpenOnload SO_REUSEPORT HW assisted • Avoids lock contention, enabling far superior scaling when compared to Kernel TCP SO_REUSEPORT implementation • Connection endpoint caching/socket caching • Avoids further system call overheads
  7. 7. 2015 | 7Solarflare Public Solarflare SFN7002 3X More Efficient than Intel X710 0 20000 40000 60000 80000 100000 120000 1 2 3 4 5 6 8 10 12 10 Gbps Connections (x axis cores, y axis connection/s) sfn7002f-Onload sfn7002f-kernel x710-kernel
  8. 8. 2015 | 8Solarflare Public Line Rate 9 Gbps Nginx Performance with Solarflare Only Limited by the Bandwidth of the 10GbE Link 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 8 10 12 10 Gbps Response Bandwidth (x axis cores, y axis Gbps) sfn7002f-Onload sfn7002f-kernel x710-kernel
  9. 9. 2015 | 9Solarflare Public At 40GbE with Solarflare Nginx Performance Still Only Limited by Bandwidth of the Link 0 50000 100000 150000 200000 250000 300000 350000 400000 450000 500000 1 2 3 4 5 6 8 10 12 40Gbps Connections (x axis cores, y axis connection/s) sfn7142q-Onload sfn7142q-kernel
  10. 10. 2015 | 10Solarflare Public Solarflare Delivers 3X Better Nginx Performance than Intel X710 • Solarflare SFN7002 with OpenOnload is three times more efficient than the Intel X710 in its use of precious and expensive server CPU resources • Achieve maximum 10Gbps line rate performance with OpenOnload and two of cores, performance that takes six cores to achieve with Intel X710 • At 10GbE in terms of connections per second an industry standard server with a given CPU resource allocation running Nginx can achieve up 2X the throughput of the Intel X710 • Moreover, the SFN7002 can saturate a 10 GbE link with two cores while the SFN7142Q adapter can saturate a 40GbE link with 10,000 byte payload requests and the use of 10 cores • Bottom line: Nginx applications running with Solarflare have more CPU resources available that can be used for other applications or to scale to higher transaction rates per server, thus lowering operating costs
  11. 11. 2015 | 11Solarflare Public END