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

Transcript of Making the Web Faster with User Level Networking: 2X NGINX Performance Increase for Video on Demand,...

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