Accelerating Server Side Programming with Java Server Pages (JSP) Atif Aftab Ahmed Jilani.
Accelerating Nginx Web Server Performance
-
Upload
bruce-tolley -
Category
Technology
-
view
114 -
download
1
Transcript of Accelerating Nginx Web Server Performance
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 TolleyVice 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
LANswitch
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
threadingRHEL 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
1 2 3 4 5 6 8 10 120
20000
40000
60000
80000
100000
120000
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 SolarflareOnly Limited by the Bandwidth of the 10GbE Link
1 2 3 4 5 6 8 10 120
1
2
3
4
5
6
7
8
9
10
10 Gbps Response Bandwidth (x axis cores, y axis Gbps)
sfn7002f-Onload sfn7002f-kernel x710-kernel
2015 | 9Solarflare Public
At 40GbE with SolarflareNginx Performance Still Only Limited by Bandwidth of the Link
1 2 3 4 5 6 8 10 120
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
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