making the web faster with user level networking: 2x nginx performance increase for video on demand,...

13
January 5 th 2015 | 1 Copyright © 2015 Solarflare Communications, Inc. All rights reserved. Making the Web Faster with User Level Networking: 2X Performance Increase for Video on Demand, Load Balancing, Web Content Bruce Tolley, PhD 23 Sept 2015 Nginx Conference San Francisco, CA

Upload: bruce-tolley

Post on 23-Jan-2017

443 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 1 Copyright © 2015 Solarflare Communications, Inc. All rights reserved.

Making the Web Faster with User Level Networking:

2X Performance Increase for Video on Demand, Load Balancing, Web Content

Bruce Tolley, PhD23 Sept 2015

Nginx ConferenceSan Francisco, CA

Page 2: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 2

Introducing Solarflare - Who We Are• High-performance 10 and

40GbE software and server adapters

• Power the networks at all the banks and exchanges

• Partner with NGINX, Arista, Cisco, Red Hat, Juniper

• OEM with Dell, HP, Lenovo. Partner with Ciara, Quanta, SuperMicro

• Over 1400 customers worldwide• Deployed at CloudFlare,

Digital Ocean, LeaseWeb and more

• Trials and POCs @ in US, Europe, China

Page 3: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 3

What We Do

We optimize performance from the application down to the wire

Page 4: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 4

How We Do It--User Level Networking: OpenOnload

• Accelerates BSD sockets• TCP/IP, UDP and multicast

• Bypasses the kernel stack• Increases throughput• Integrates with existing

infrastructure• Binary compatible with standard

APIs• TCP/IP and UDP on the wire • Open Source. Bare metal, VM,

container• Added support for enhanced

socket caching. SO_REUSEPORT

Page 5: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 5

Solarflare Tools, Libraries, and Interfaces for Dev Teams

• EF-VI EtherFabric Virtual Interface• Bare, Layer 2 interface for applications in user space.

Similar to DPDK• Future: DPDK

• SolarCapture FDK (firmware development kit)• Standards-based interfaces (libpcap) and libraries for

home- brewed capture and security applications• OpenOnload

• High-performance, Open-Source, Linux-friendly stack that dramatically reduces latency and CPU utilization

• IETF RFC compliance. Hardened. Running in 10s of 1000s of nodes: NYSE, NASDAQ

Page 6: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 6

Onload Architecture and Two New Features to Support Nginx Acceleration

• Network processing at user-level, bypassing the OS kernel• Frees up expensive CPU resources

• New support of the SO_REUSEPORT socket option that allows multiple TCP listening sockets to bind to the same IP address and port• increases application scalability• Higher SO_REUSEPORT performance than the Linux stack

because Onload eliminates lock contention via load balancing• Socket caching, avoids the overhead of additional system calls

• improves performance when connections are short-lived

Page 7: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 7

NGINX Performance: Short Lived Connections- Web Traffic – 10GbE

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

Solarflare SFN7002 3X More Efficient than Intel X710xx

Line Rate @ 9 GbpsMax Performance Only Limited by the Bandwidth of the 10GbE Link

Page 8: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 8

NGINX VOD Performance-- Long Lived Connections– 40GbE and 2X10GbE

1 2 3 4 5 6 7 80

10,00020,00030,00040,000

Nginx Performance 40GbE

SFN7002 OnloadIntel XL710

Core

s

Conn

necti

ons (

max

.)

1 2 3 4 5 6 5,000

10,000

15,000

20,000

Nginx Performance 2X10GbE

SFN7002 OnloadIntel X710

Core

s

Conn

ectio

ns (M

ax)

Solarflare: max performance with just two cores. 18K simultaneous connections. Intel: needs three cores to fill up the link

Solarflare: maximum performance with 3 cores. Intel: 4 to 5 coresSolarflare 1.67 times more efficient than Intel

Page 9: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 9

What Other Efficiencies Can Be Found

• Power measured using the Dell iDRAC on Dell R610 Server• Idle power same: Intel x710 vs Solarflare SFN7002 @ 70w• 2X more power efficient than Intel

Page 10: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 10

NGINX Load Balancer Performance Improvements

1 2 3 4 5 6 70

1020304050

100K Byte

i40eSFN7142q

Cores

Connections/Sec (000s)

1 2 3 4 5 6 7 80

100

200

300

400

1K Byte

i40eSFN7142q

Cores

Connections/Sec (000s)

1 2 3 4 5 6 70

50100150200250300

10K Byte

i40eSFN7142q

Cores

Connections/Sec (000s)

Page 11: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 11

Summary NGINX Performance with Solarflare

• Bottom line: Solarflare delivers NGINX acceleration and significant reductions in CPU utilization

• For Web traffic (short-lived HTTP connections)• For Video on Demand traffic (long-lived HTTP

connections)• Also Nginx Load Balancer• 3 to 4X higher performance than Intel

• Power Efficiency• 2X More power efficient than Intel

Page 12: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 12

Where to Get More Information

• Introduction to OpenOnload• https://support.solarflare.com

• Solarflare and CloudFlare Build a Faster, Safer, More Secure Web• http://www.solarflare.com/Content/UserFiles/Documents/

Solarflare_CloudFlare_CaseStudy.pdf• Improving Web Server Performance

• http://www.solarflare.com/Accelerating-Web-CDN-Applications• Accelerating the VOD Work Flow

• http://www.solarflare.com/Content/UserFiles/Documents/RTL_HD_Live_to_VOD_and_Playout_Automated_Workflow.pdf

• Solarflare+RTL Webinar • https://www.brighttalk.com/webcast/11615/141217

• “How to achieve Low Latency with 10Gbps”• https://blog.cloudflare.com/author/marek-majkowski/

Page 13: Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand, Load Balancing, Web Content

January 5th 2015 | 13

END