Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting our team. We will be in touch shortly.Close

  1. Blog
  2. Article

Jorge O. Castro
on 11 August 2015

How Netflix tunes Ubuntu on EC2


One of the nice things about having Netflix running Ubuntu is that the community can take advantage of the lessons they learn about running services at scale.

I had the pleasure of attending Brendan Gregg’s Linux Profiling at Netflix talk at SCALE13x and afterwards he gave me a list of things that Netflix did to Ubuntu to meet their needs. A bunch of it was bug reports, things like this Xen issue, and other fixes that have since been incorporated into 14.04 and our cloud images. Afterwards, Brendan did a follow up talk on how Netflix tunes their instances.

WARNING: These tunables were developed in late 2014, for Ubuntu 14.04 on EC2. They are meant to be shared as a baseline for you to experiment with, don’t consider these production-ready without proper testing, etc.

CPU

schedtool –B PID

Virtual Memory

vm.swappiness = 0 # from 60

Huge Pages

# echo never > /sys/kernel/mm/transparent_hugepage/enabled # from madvise

File System

vm.dirty_ratio = 80 # from 40
vm.dirty_background_ratio = 5 # from 10
vm.dirty_expire_centisecs = 12000 # from 3000
mount -o defaults,noatime,discard,nobarrier …

Storage I/O

/sys/block/*/queue/rq_affinity 2
/sys/block/*/queue/scheduler noop
/sys/block/*/queue/nr_requests 256
/sys/block/*/queue/read_ahead_kb 256
mdadm –chunk=64 ...

Networking

net.core.somaxconn = 1000
net.core.netdev_max_backlog = 5000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_wmem = 4096 12582912 16777216
net.ipv4.tcp_rmem = 4096 12582912 16777216
net.ipv4.tcp_max_syn_backlog = 8096
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
net.ipv4.tcp_abort_on_overflow = 1 # maybe

Hypervisor (Xen)

echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource

Here are the accompanying slides to the talk.

Where to test?

As Greg mentions, it would be silly for everyone to just take these settings and blindly run them. Just because setting X works for Netflix doesn’t necessarily mean it will work for you. This is why we’ve set up cloud-benchmarks.org, where the community can submit benchmarks of complex deployed systems, and then compare them across clouds.

Take a service you care about, run it with stock Ubuntu, and then run it with these settings, then start iterating and tweaking, share your results, and then, most importantly, start the discussion about performance with your peers.

Many thanks to Brendan and Netflix for sharing their Devops expertise with us!

Related posts


Carlos Bravo
2 February 2024

Generative AI on a GPU-Instance with Ubuntu on AWS: Part 1 – Image Generation

Ubuntu Article

This blog post will show you how to run one of the most used Generative AI models for Image generation on Ubuntu on a GPU-based EC2 instance on AWS ...


Henry Coggill
18 April 2024

DISA publishes STIG for Ubuntu 22.04 LTS

DISA STIG Article

Introduction DISA, the Defense Information Systems Agency, has published their Security Technical Implementation Guide (STIG) for Ubuntu 22.04 LTS. The STIG is free for the public to download from the DOD Cyber Exchange. Canonical has been working with DISA since we published Ubuntu 22.04 LTS to draft this STIG, and we are delighted that ...


Felicia Jia
16 April 2024

Canonical presence at Qualcomm DX Summit @Hannover Messe

Internet of Things Article

At the world’s leading industrial trade fair, companies from the mechanical engineering, electrical engineering and digital industries as well as the energy sector will come together to present solutions for a high-performance, but also sustainable industry at Hannover Messe. This year, Qualcomm brought its DX Summit to Hannover Messe, pu ...