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.
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. 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. 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. 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. 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
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. 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. 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