cassandra summit 2014: down with tweaking! removing tunable complexity for cassandra performance and...
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
Cassandra on OSv
Dor Laor, Don Marti and Glauber CostaCloudius Systems
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
[ 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”;}
Cassandra boot time on OSv
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
Pimp my Memcached
Requests/s (higher is better)
Redis on Vitamins
Cassandra
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...
New TCP/IP Stack
Common kernel network stack
Net Channel design:
Value Proposition II: Manageability
OSv management interface
Stateless root-fs
4 VMs per sys admin ratio
NO TuningNO StateNO Patching
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
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
Some more OSv Goodies
rest-apiJolokia JVM
PaaS approach for runtimes
ZFS snapshots
Ruby, Node, Scala, more
Cloud Init
NewRelicinteg
JVMBallooning
~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
Thank you!Try it! http://osv.io/Run on public cloudFollow @CloudiusSystems