accelerating nginx web server performance

11
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

Upload: bruce-tolley

Post on 25-Jul-2015

114 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 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

Page 2: Accelerating Nginx Web Server Performance

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

Page 3: Accelerating Nginx Web Server Performance

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

Page 4: Accelerating Nginx Web Server Performance

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

Page 5: Accelerating Nginx Web Server Performance

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

Page 6: Accelerating Nginx Web Server Performance

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

Page 7: Accelerating Nginx Web Server Performance

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

Page 8: Accelerating Nginx Web Server Performance

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

Page 9: Accelerating Nginx Web Server Performance

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

Page 10: Accelerating Nginx Web Server Performance

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

Page 11: Accelerating Nginx Web Server Performance

2015 | 11Solarflare Public

END