《从 0 开始学微服务》学习归整(十)容量规划

内容纲要

容量规划的作用

容量规划的作用是:根据各个微服务部署集群的最大容量和线上实际的运行负荷,来决定各个微服务是否需要扩缩容,以及需要多少台机器。

容量规划的复杂度

  • 服务数量多
    • 人肉运维困难
  • 接口表现差异大
    • 接口访问量不一样
    • 接口返回时间不一样
  • 集群规模不同
    • 小集群可能只需要扩容几台
    • 大集群可能需要扩容几百、上千台
  • 服务间依赖
    • 扩容时需要同时考虑依赖服务的容量

实施关键

容量评估

  • 评估方法:通常使用压测
    • 关键点
      • 选择合适压测指标
        • 系统指标:CPU、内存、网络等
        • 服务指标
          • 接口响应平均耗时、错误率等
          • 接口慢速比:即接口响应时间高于某阈值的比例
      • 压测获取单机最大容量(集群容量 = 单机容量 * 数量)
        • 单机压测(脏数据不太好处理)
          • 日志回放等:模拟线上流量对单机进行压测
          • TCP-Copy:把线上机器的流量拷贝过来进行压测
        • 集群压测(会对实际用户产生影响;可以在低峰进行压测)
          • 通过摘除集群节点的方式增大单机节点的流量进行压测
      • 实时获取集群运行负荷
        • 区间加权计算(把请求按照响应时间分区,并赋予不同的区间不同的权重)

调度决策

通常通过水位线(可用容量低于某值)或者高压线(使用量超过某值)等方式进行决策。一般采取采集多个连续时间点的指标来决策,以对抗网络抖动等问题。

  • 扩容
    • 方式
      • 按数量
      • 按比例
  • 缩容
    • 方式
      • 逐步缩容

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注