cassandra summit 2014: down with tweaking! removing tunable complexity for cassandra performance and...

26
Cassandra on OSv Dor Laor, Don Marti and Glauber Costa Cloudius Systems

Upload: planet-cassandra

Post on 29-Nov-2014

216 views

Category:

Technology


4 download

DESCRIPTION

Presenters: Don Marti, Glauber Costa, and Dor Laor of Cloudius Systems The need for performance tuning of the JVM and OS is making administrators the bottleneck for Cassandra deployments--especially in virtual environments. Over the past two years, the OSv project has profiled tuning-sensitive applications with a special focus on Cassandra. Today, many of the important bottlenecks for NoSQL applications are tunable on a conventional OS, but do not require tuning in the OSv environment. OSv gives Cassandra a simpler environment, set up to run one application in a single address space. This talk will cover how to use OSv to improve performance in key areas such as JVM memory allocation and network throughput--without loading up your to-do list with difficult tuning tasks.

TRANSCRIPT

Page 1: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Cassandra on OSv

Dor Laor, Don Marti and Glauber CostaCloudius Systems

Page 2: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Become the best OSpowering virtual machines

in the cloud

Hardware

Hypervisor

OSv

Your App

Hardware

Hypervisor

OSv + JVM

Your App

Hardware

Hypervisor

OSv + JVM

Hardware

Hypervisor

OSv

Hardware

Hypervisor

OSv + JVM

Your App

Page 3: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator
Page 4: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

[ 0.000] Status() {return PreBeta;}

[ 0.103] HR.count() { return pp(18);}

[ 0.217] countries.size() {return 9;}

[ 0.423] getOpenSourceExperience() { ret list.add(KVM).add(Xen).add(containers);}

[ 0.735] Mission(){ret “write code that doesn’t suck”;}

Page 5: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Cassandra boot time on OSv

Page 6: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Hardware

Hypervisor

guest OS

JVM

App Server

Java App

What is OSv?

guest OS

C++ App

Hardware

Hypervisor

OSv + JVM

App Server

Your App

OSv

Your App

Traditional Stack Thin OS

Page 7: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator
Page 8: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator
Page 9: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Pimp my Memcached

Requests/s (higher is better)

Page 10: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Redis on Vitamins

Page 11: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Cassandra

Page 12: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Performance: Leave no stone unturned

Memory Huge pages, Heap vs Sys

I/O Zero copy, full aio, batching

Scheduling Lock free, low latency

Tuning Out of the box, auto

CPU Low cost ctx, Direct signals...

Page 13: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

New TCP/IP Stack

Common kernel network stack

Net Channel design:

Page 14: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Value Proposition II: Manageability

Page 15: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator
Page 16: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

OSv management interface

Page 17: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator
Page 18: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator
Page 19: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator
Page 20: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator
Page 21: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Stateless root-fs

4 VMs per sys admin ratio

NO TuningNO StateNO Patching

Page 22: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

www.osv.io/Capstan:VM build and deploy● Docker-like config file● Takes about 3 seconds to build● Runs on any OS (written in Go)cat Capstanfilebase: cloudius/osv-openjdkcmdline: > /java.so -XX:+UseThreadPriorities -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 ... org.apache.cassandra.service.CassandraDaemonbuild: make

Page 23: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Deploying OSv at scaleOSV Cloud Init: - Stateless - Watch ma, no puppet/chef - Single (external) file to rule them all

files: /etc/config: | my config goes here

httpserver: ssl: yes port: 443

topology: - dc_name: DC1 racks: - rack_name: c1 nodes: - broadcast_address: 1.2.3.4 dc_local_address: 5.6.7.8

Page 24: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Some more OSv Goodies

rest-apiJolokia JVM

PaaS approach for runtimes

ZFS snapshots

Ruby, Node, Scala, more

Cloud Init

NewRelicinteg

JVMBallooning

Page 25: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

~20MB image size

Ideal for multi tenants

Stateless, streamable config

70% better tcp latency

Runs on virtualBox, kvm, vmw, xen, ec2, gce

Public image repository

Page 26: Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Cassandra Performance and Administrator

Thank you!Try it! http://osv.io/Run on public cloudFollow @CloudiusSystems