honest performance testing with "ndbench" (vinay chella, netflix) | cassandra summit 2016

50
Honest Performance Testing with NDBench Netflix Data Benchmark

Upload: datastax

Post on 16-Apr-2017

171 views

Category:

Software


7 download

TRANSCRIPT

Page 1: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Honest Performance Testing withNDBenchNetflix Data Benchmark

Page 2: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016
Page 3: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016
Page 4: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016
Page 5: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Vinay ChellaCloud Data ArchitectCassandra MVPCloud Database Engineering @ Netflix

Page 6: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

• CDE, Cloud Database Engineering

• Providing data stores as a service

○Cassandra○Dynomite ○Elasticsearch and RDS

Who are we?

Page 7: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

• 98% of streaming data is stored in Cassandra

• Data ranges from customer details to Viewing history / streaming bookmarks to billing and payment

Cassandra @ Netflix

Page 8: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Agenda•Background•Why NDBench?•Architecture•Usage •Achievements•Roadmap•Take away

Page 9: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Perf testing persistence layer?

Page 10: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Capacity in my existing fleet?

Page 11: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Why?

Why not already existing Perf testing tools?

Page 12: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

What is NDBench?

Netflix Data Benchmark (NDBench) is a Pluggable cloud-enabled benchmarking tool that can be used

across any data store system.

Page 13: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Side by Side comparison

Page 14: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Different driver/ software versions

Page 15: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Different instance types

Page 16: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Dynamically tunable configurations

Page 17: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Varying data models

Page 18: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Pluggable Patterns & Loads

Page 19: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Different Client APIs

Page 20: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Netflix homegrown• Well integrated with

netflix OSS infrastructure

Page 21: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Architecture

Page 22: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

What is Pluggable?

• Load Patterns

• Load tests

Page 23: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Load Patterns

• Random

• Sliding Window

Page 24: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Load Tests

• Cassandra-JavaDriver• Elastic Search• Dynomite• Cassandra-Astyanax• In-Memory Test

Page 25: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

What can be configured?• ndbench.driver.numKeys - 1000000• ndbench.driver.dataSize - 200 bytes• ndbench.driver.numWriters - 1• ndbench.driver.numReaders - 1• ndbench.driver.writeRateLimit - 100• ndbench.driver.readRateLimit - 200• ndbench.driver.useVariableDataSize - false• Many more….

Page 26: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Dynamic Script

Page 27: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

How to use it

• REST API

• UI

Page 28: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

REST API• Initialization

- Initialize: /pappy/driver/init/{DriverName}

- Init Script: /pappy/driver/initfromscript

• Perf API

- Start writes: /pappy/driver/startWrites

- Start reads: /pappy/driver/startReads

- Stop everything: /pappy/driver/stop

• Sanity check

- Verify Read: /pappy/driver/readSingle/key

- Verify Write: /pappy/driver/writeSingle/key

- Verify Read: /pappy/driver/readSingle/key

• Backfill

- Data Backfill: /pappy/driver/startDataFill

- DataBackfill Async: /pappy/driver/startDataFillAsync

• Status API

- /pappy/driver/{getRead/Write}Status

- /pappy/driver/getserverstatus

Page 29: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

NDBench Demo...

Page 30: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016
Page 31: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

NDBench @ Netflix

• As a

- Benchmarking Tool

- Integration Tests

- Deployment Validation

Page 32: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

NDBench’s Achievements @ Netflix

Page 33: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

N+1

Page 34: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

C* 1.2 → C* 2.0, C*2.0 → C* 2.1

Page 35: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

C* 2.0 vs C* 2.1 (Reads - Thrift)

Page 36: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

C* 2.0 vs C* 2.1 (Writes - Thrift)

Page 37: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

CentOS ---> Trusty

Page 38: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

CentOS -> Trusty Migration

Page 39: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

LCS on CentOS vs Trusty (writes)

Page 40: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

LCS on CentOS vs Trusty (Reads)

Page 41: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Java 7 → Java 8

Page 42: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

C* on Java 7 vs Java 8 (Writes)

Page 43: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

C* on Java 7 vs Java 8 (Reads)

Page 44: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

C* AMI Certification Pipeline

Page 45: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Dynomite benchmarking• Generating Millions of

Ops/ sec

Page 46: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Dynomite benchmarking

Page 47: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Roadmap

• Performance profile management

• Automated metrics analysis

• Dynamic load generation based on destination

schema

Page 48: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

https://github.com/Netflix/ndbench

Page 49: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Take away

“Test the honesty of your data models, persistence layers in Cloud ecosystem using NDBench”

Page 50: Honest Performance Testing with "NDBench" (Vinay Chella, Netflix) | Cassandra Summit 2016

Q & A