内容纲要
容量规划的作用
容量规划的作用是:根据各个微服务部署集群的最大容量和线上实际的运行负荷,来决定各个微服务是否需要扩缩容,以及需要多少台机器。
容量规划的复杂度
- 服务数量多
- 人肉运维困难
- 接口表现差异大
- 接口访问量不一样
- 接口返回时间不一样
- 集群规模不同
- 小集群可能只需要扩容几台
- 大集群可能需要扩容几百、上千台
- 服务间依赖
- 扩容时需要同时考虑依赖服务的容量
实施关键
容量评估
- 评估方法:通常使用压测
- 关键点
- 选择合适压测指标
- 系统指标:CPU、内存、网络等
- 服务指标
- 接口响应平均耗时、错误率等
- 接口慢速比:即接口响应时间高于某阈值的比例
- 压测获取单机最大容量(集群容量 = 单机容量 * 数量)
- 单机压测(脏数据不太好处理)
- 日志回放等:模拟线上流量对单机进行压测
- TCP-Copy:把线上机器的流量拷贝过来进行压测
- 集群压测(会对实际用户产生影响;可以在低峰进行压测)
- 通过摘除集群节点的方式增大单机节点的流量进行压测
- 单机压测(脏数据不太好处理)
- 实时获取集群运行负荷
- 区间加权计算(把请求按照响应时间分区,并赋予不同的区间不同的权重)
- 选择合适压测指标
- 关键点
调度决策
通常通过水位线(可用容量低于某值)或者高压线(使用量超过某值)等方式进行决策。一般采取采集多个连续时间点的指标来决策,以对抗网络抖动等问题。
- 扩容
- 方式
- 按数量
- 按比例
- 方式
- 缩容
- 方式
- 逐步缩容
- 方式