前言
当我们在做大促,类似于双十一的活动时候,老板就会跑过来问我们这些问题
1.线上服务能承受多大的访问量
2.单台服务器能承受多大的访问量
3.需要加机器吗?需要加多少台机器
这个时候,就体现出容量规划的重要性了。那到底什么是容量规划呢?
容量规划是以当前的性能作为基线,来决定你需要什么及什么时候需要
容量 VS 性能
- 性能:决定一辆车能装什么东西
- 容量:决定需要多少量车
容量规划可以分解为下面 4 个步骤
- 明确目标
- 收集指标
- 趋势预测
- 容量部署
明确目标
在没有明确网站需求之前,不应该开始容量规划。
一般每个服务都有对外承诺的服务质量,那么我们就需要根据这个目标来做容量规划及硬件方面的投入。
比如 A 网站能承受 3000 QPS,响应时间小于 200 ms。
SLA (服务等级协议)
收集指标
不知道当前服务能承受的容量范围的话,不建议进行容量方面的规划。
我们需要通过测试来了解当前服务的数据指标。没有测试出你的服务上限的话,规划出来也是没有效果的。
测试主要分为下面 2 个步骤
趋势预测
预测容量是一个持续的过程,需要靠数学与直觉来进行精确的预测。
整体过程如下
- 首先确定资源度量指标 :比如内存消耗、硬盘消耗、cpu 消耗
- 其实对拥有的资源确定约束访问 : 比如 总内存大小、总硬盘大小等
- 最后根据监控趋势图( Zabbix 、Metrics)算出具体容量超出时间点 : 比如内存何时会耗尽
容量部署
一旦确定未来需要多少容量才能满足业务需求,就可以着手新的设备,并进行部署。
通过自动化部署工具( Ansible、 Salt ) 最大限度的减少部署时间
参考
- Web容量规划的艺术 https://book.douban.com/subject/4200645/