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
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
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
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
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
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
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
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
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
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
2015 | 11Solarflare Public
END

Accelerating Nginx Web Server Performance

  • 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.
    2015 | 2SolarflarePublic 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.
    2015 | 3SolarflarePublic 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.
    2015 | 4SolarflarePublic 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.
    2015 | 5SolarflarePublic 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.
    2015 | 6SolarflarePublic 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.
    2015 | 7SolarflarePublic 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.
    2015 | 8SolarflarePublic 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.
    2015 | 9SolarflarePublic 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.
    2015 | 10SolarflarePublic 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.