怎么做容量规划

前言

当我们在做大促,类似于双十一的活动时候,老板就会跑过来问我们这些问题

1.线上服务能承受多大的访问量
2.单台服务器能承受多大的访问量
3.需要加机器吗?需要加多少台机器

这个时候,就体现出容量规划的重要性了。那到底什么是容量规划呢?

容量规划是以当前的性能作为基线,来决定你需要什么及什么时候需要

容量 VS 性能

  • 性能:决定一辆车能装什么东西
  • 容量:决定需要多少量车

容量规划可以分解为下面 4 个步骤

  • 明确目标
  • 收集指标
  • 趋势预测
  • 容量部署

明确目标

在没有明确网站需求之前,不应该开始容量规划。

一般每个服务都有对外承诺的服务质量,那么我们就需要根据这个目标来做容量规划及硬件方面的投入。

比如 A 网站能承受 3000 QPS,响应时间小于 200 ms。

SLA (服务等级协议)

怎么做容量规划

收集指标

不知道当前服务能承受的容量范围的话,不建议进行容量方面的规划。

我们需要通过测试来了解当前服务的数据指标。没有测试出你的服务上限的话,规划出来也是没有效果的。

测试主要分为下面 2 个步骤

  • 测试服务器的主要功能 :业务维度 QPS、TPS
  • 测试服务器硬件资源 : CPU、内存、硬盘、网络

趋势预测

预测容量是一个持续的过程,需要靠数学与直觉来进行精确的预测。

整体过程如下

  • 首先确定资源度量指标 :比如内存消耗、硬盘消耗、CPU 消耗
  • 其实对拥有的资源确定约束访问 : 比如 总内存大小、总硬盘大小等
  • 最后根据监控趋势图( Zabbix 、Metrics)算出具体容量超出时间点 : 比如内存何时会耗尽

容量部署

一旦确定未来需要多少容量才能满足业务需求,就可以着手新的设备,并进行部署。

通过自动化部署工具( Ansible、 Salt ) 最大限度的减少部署时间

参考