3. 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
Capacity Planning, Asya Kamsky, 10gen
4. Capacity Planning: Why, What, When
Why?
What are the consequences of not planning?
Capacity Planning, Asya Kamsky, 10gen
5. 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! ;)
Capacity Planning, Asya Kamsky, 10gen
6. Capacity Planning: Why, What, When
Why?
What are the consequences of not planning?
Capacity Planning, Asya Kamsky, 10gen
7. Why
• We want to keep our jobs J
• and get big raises! ;)
• so we should stay within reasonable budget
Capacity Planning, Asya Kamsky, 10gen
8. Capacity Planning: Why, What, When
What?
Why?
Requirements
Capacity Planning, Asya Kamsky, 10gen
9. 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?
Capacity Planning, Asya Kamsky, 10gen
10. Capacity Planning: Why, What, When
What?
• Availability
• Throughput
• Responsiveness
Capacity Planning, Asya Kamsky, 10gen
11. 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?
Capacity Planning, Asya Kamsky, 10gen
12. Capacity Planning: Why, What, When
What?
• Availability
• Throughput
• Responsiveness
Capacity Planning, Asya Kamsky, 10gen
13. Capacity Planning: Why, What, When
When?
Before it's too late!
Start Launch Version 2
Capacity Planning, Asya Kamsky, 10gen
14. Capacity Planning: Why?
• Capacity
– Under
– Over
– Just right?
• Prediction Models
– User/Load
– System(s) Behavior
• Change Velocity (reaction time)
– Data/Resource-Allocation/Provisioning
Capacity Planning, Asya Kamsky, 10gen
15. 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)
Capacity Planning, Asya Kamsky, 10gen
16. Resource Usage
• Storage • CPU
– IOPS – Speed
– Size – Cores
– Data & Loading Patterns
• Memory • Network
– Latency
– Working Set – Throughput
Capacity Planning, Asya Kamsky, 10gen
37. 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?
Capacity Planning, Asya Kamsky, 10gen
38. Deployment Types
All of these use the same resources:
• Single Instance
• Multiple Instances (Replica Set)
• Cluster (Sharding)
• Data Centers
Capacity Planning, Asya Kamsky, 10gen
42. 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
Capacity Planning, Asya Kamsky, 10gen