capacity planning

40
Capacity Planning: Deploying MongoDB

Upload: mongodb

Post on 26-Jan-2015

680 views

Category:

Documents


7 download

DESCRIPTION

Deploying MongoDB can be a challenge if you don't understand how resources are used nor how to plan for the capacity of your systems. If you need to deploy, or grow, a MongoDB single instance, replica set, or tens of sharded clusters then you probably share the same challenges in trying to size that deployment. This talk will cover what resources MongoDB uses, and how to plan for their use in your deployment. Topics covered will include understanding how to model and plan capacity needs from the perspective of a new deployment, growing an existing one, and defining where the steps along scalability on your path to the top. The goal of this presentation will be to provide you with the tools needed to be successful in managing your MongoDB capacity planning tasks.

TRANSCRIPT

Page 1: Capacity Planning

Capacity Planning: Deploying MongoDB

Page 2: Capacity Planning

This deck is a work in progress!

•  Written by Asya (and presented by her a few times)

•  …but it’s still new, so you may want to rehearse it a few extra times before presenting

Page 3: Capacity Planning

Capacity Planning: Why, What, When

•  Don't be the "goat" – spent too much $ or caused failure of site, etc.

•  Users frequently ask about HW they need for their application. What does 10gen "recommend"?

•  No right answer in a vacuum.

•  Why we need to plan to meet expectations, etc. –  future planning •  data increases, don't want performance drop-off

Page 4: Capacity Planning

What are the consequences of not planning?

Capacity Planning: Why, What, When

Why?

Page 5: Capacity Planning

Why

•  Once we launch, we don't want to have avoidable down time due to poorly selected HW

•  As our success grows we want to stay in front of the demand curve

•  We want to meet business' and users' expectations

•  We want to keep our jobs J

•  and get big raises! ;)

Page 6: Capacity Planning

Capacity Planning: Why, What, When

Why? What are the consequences of not planning?

Page 7: Capacity Planning

Why

•  We want to keep our jobs J

•  and get big raises! ;)

•  so we should stay within reasonable budget

Page 8: Capacity Planning

Capacity Planning: Why, What, When

Requirements

What? Why?

Page 9: Capacity Planning

What

•  There is one thing that is absolutely mandatory to have in order to succeed in capacity planning

•  Without it, you will not be successful

•  We must have REQUIREMENTS from business –  without requirements, we're building a roadmap without

knowing the desired destination Imagine building a car without knowing what its top speed should be, acceleration, MPH, and cost?

Page 10: Capacity Planning

•  Availability •  Throughput •  Responsiveness

What?

Capacity Planning: Why, What, When

Page 11: Capacity Planning

What

•  Availability: what is uptime requirement?

•  Throughput –  average read/write/users –  peak throughput? –  OPS (operations per second)? per hour? per day?

•  Responsiveness –  what is acceptable latency? –  is higher during peak times acceptable?

Page 12: Capacity Planning

•  Availability •  Throughput •  Responsiveness

What?

Capacity Planning: Why, What, When

Page 13: Capacity Planning

Before it's too late!

When?

Capacity Planning: Why, What, When

Start Launch Version 2

Page 14: Capacity Planning
Page 15: Capacity Planning

Capacity Planning: Why?

•  Capacity –  Under –  Over –  Just right?

•  Prediction Models –  User/Load –  System(s) Behavior

•  Change Velocity (reaction time) –  Data/Resource-Allocation/Provisioning

Page 16: Capacity Planning

Capacity Planning: What? •  Understand Resources

–  Storage –  Memory –  CPU –  Network

•  Understand Your Application –  Monitor and Collect Metrics –  Model to Predict Change –  Allocate and Deploy –  (repeat process)

Page 17: Capacity Planning

Resource Usage

•  Storage –  IOPS –  Size –  Data & Loading Patterns

•  Memory

–  Working Set

•  CPU –  Speed –  Cores

•  Network –  Latency –  Throughput

Page 18: Capacity Planning

Storage

• Active • Archival • Loading Patterns •  Integration (BI/DW)

Page 19: Capacity Planning

Storage

• Active • Archival • Loading Patterns •  Integration (BI/DW)

Example IOPS

Page 20: Capacity Planning

Example IOPS 7,200 rpm SATA ~ 75-100 IOPS

15,000 rpm SAS ~ 175-210 IOPS

Amazon EBS/Provisioned ~ 100 IOPS "up to" 2,000 IOPS

Amazon SSD 9,000 – 120,000 IOPS

Storage Capability

Page 21: Capacity Planning

Intel X25-E (SLC) ~ 5,000 IOPS

Fusion IO ~ 135,000 IOPS

Violin Memory 6000 ~ 1,000,000 IOPS

Example IOPS 7,200 rpm SATA ~ 75-100 IOPS

15,000 rpm SAS ~ 175-210 IOPS

Amazon EBS/Provisioned ~ 100 IOPS "up to" 2,000 IOPS

Amazon SSD 9,000 – 120,000 IOPS

Storage Capability

Page 22: Capacity Planning

Intel X25-E (SLC) ~ 5,000 IOPS

Fusion IO ~ 135,000 IOPS

Violin Memory 6000 ~ 1,000,000 IOPS

Cost of IOPS 7,200 rpm SATA ~ 75-100 IOPS

15,000 rpm SAS ~ 175-210 IOPS

Amazon EBS/Provisioned ~ 100 IOPS "up to" 2,000 IOPS

Amazon SSD 9,000 – 120,000 IOPS

Storage Costs

Page 23: Capacity Planning

Memory

•  Working Set – Active Data in Memory – Measured Over Periods

Page 24: Capacity Planning

Memory

•  Work: – Sorting – Aggregation – Connections

SORTS

Connections

Aggregations

Page 25: Capacity Planning

Memory & Storage

> < ?

Page 26: Capacity Planning

Memory & Storage

MOPs

PFs

Page 27: Capacity Planning

Memory & Storage

% Disk Util

MOPS

MOPS: MongoDB Ops/sec

Page 28: Capacity Planning

Memory & Storage

% Disk Util

MOPS

Page 29: Capacity Planning

Memory & Storage

% Disk Util

MOPS

Page 30: Capacity Planning

CPU

•  Non-indexed Data

•  Sorting

•  Aggregation –  Map/Reduce –  Framework

•  Data –  Fields –  Nesting –  Arrays/Embedded-Docs

Page 31: Capacity Planning

Network

•  Latency –  WriteConcern –  ReadPreference –  Batching –  Documents (and Collections)

•  Throughput –  Update/Write Patterns –  Reads/Queries

Page 32: Capacity Planning

Starter Questions

•  What is the working set? –  How does that equate to memory –  How much disk access will that require

•  How efficient are the queries?

•  What is the rate of data change?

•  How big are the highs and lows?

Page 33: Capacity Planning

Deployment Types

All of these use the same resources:

•  Single Instance

•  Multiple Instances (Replica Set)

•  Cluster (Sharding)

•  Data Centers

Page 34: Capacity Planning

Capacity Planning: When?

Monitoring §  Storage

§ Memory

§ CPU

§ Network

§ Application Metrics

Page 35: Capacity Planning

Tools

•  MMS (MongoDB Monitoring Service)

•  MongoDB: mongotop, mongostat

•  Linux: iostat, vmstat, sar, etc

•  Windows: Perfmon

Measure realistic loads (generated by Load testing)

Page 36: Capacity Planning

Models

•  Load/Users –  Response Time/TTFB

•  System Performance –  Peak Usage –  Min Usage

Page 37: Capacity Planning

Velocity of Change

•  Limitations -> takes time –  Data Movement –  Allocation/Provisioning (servers/mem/disk)

•  Improvement –  Limit Size of Change (if you can) –  Increase Frequency –  MEASURE its effect –  Practice

Page 38: Capacity Planning

Repeat (continuously)

•  Repeat Testing

•  Repeat Evaluations

•  Repeat Deployment

Page 39: Capacity Planning

What if I skip capacity planning?

You will be featured ...

Capacity Planning: What If...

Page 40: Capacity Planning

Thank You