美文网首页
如何评估线上系统的容量? (一)

如何评估线上系统的容量? (一)

作者: rockops | 来源:发表于2016-12-23 17:47 被阅读281次

1 背景

某年某月的某一天,有这样的一段对话:

老板: 咱们线上容量是多少?
小强: 额,不太清楚
老板: N天后,我们的流量将增大M倍,系统能抗住吗?
小强: 可能扛不住吧,不过我们可以扩容
老板: 扩多少?
小强: (拍脑袋)double一下吧

“double一下”是否可以解决问题?存在多大的浪费?如何有效评估系统容量来解决这个窘境?

在这里引出一个系统容量的概念。系统容量,指系统在有冗余的情况下的极限服务能力,可以理解为是水池的水位。当水位超过警戒线的时候,需要对系统进行横向/纵向的调整。

系统容量需要预留冗余,是因为我们要保证在部署、网段故障、机房故障时,线上服务依旧是可用的。

综上,可以得出公式:系统容量 = 单实例极限容量 * 当前实例数 * 冗余度

2 流行的方案

  1. jmeter
  2. 扩大单个实例的流量
  3. tcpcopy

2.1 jmeter

构造测试数据,进行接口级测试,观察服务表现

优点:灵活,可对特定接口进行针对性压测
缺点:很难模拟真实的流量场景(线上的接口太多,各接口的流量比例不同)

2.2 扩大流量

通过调整权重或缩减集群规模,将线上流量压到单个服务实例上,观察服务表现

优点:真实
缺点:在压力过大时可能造成服务质量下降,影响用户使用。

2.3 tcpcopy(推荐)

拷贝线上流量,对旁路环境进行压测

优点:真实,不会影响用户
缺点:需要准备完整的旁路环境

3 性能指标

不管采用什么样的压测方案,我们需要知道压到什么程度就是“极限”了。
对于在线类服务,最关注的是服务的响应时间,可以是所有接口的平均响应时间,也可以是某些接口的平均响应时间。

由于压测环境不是线上真实的服务器,需要单独搭建一整套供压测的环境。
建议按线上的部署比例进行等比例缩放压测环境的实例数。

相关文章

  • 如何评估线上系统的容量? (一)

    1 背景 某年某月的某一天,有这样的一段对话: 老板: 咱们线上容量是多少?小强: 额,不太清楚老板: N天后,我...

  • 如何评估线上系统的容量? (三)

    5 环境准备 我们的系统,分层架构如下, 接入层(lvs, nginx等load balancer)业务层(tom...

  • 如何评估线上系统的容量? (二)

    4 tcpcopy 4.1 原理 TCP/IP四层网络模型| 应用层 | HTTP, FTP, ... || 传输...

  • route add报错SIOCADDRT: Network is

    在如何评估线上系统的容量? (二)中我写过,对于target server应该增加一条去往assistant se...

  • 如何评估、预测系统的QPS

    [TOC] 如何评估、预测系统的QPS 容量评估按照5倍冗余计算 系统架构设计背景 当我们在设计一套系统的时候,我...

  • Web系统性能指标

    引言 性能评估是进行系统设计以及系统优化的重要事项,进行正确地性能评估才能有效地规划系统容量,保证系统地稳定运行。...

  • 有货如何应对双十一

    本文从全网系统架构,部署组网梳理,全链路压测和容量评估,限流,降级和超时,如何防爬、防刷,动态配置,性能优化如何做...

  • Linux篇:df与du查看磁盘空间大小

    df:列出文件系统的整体磁盘使用量; du:评估文件系统的磁盘使用量(常用于评估目录所占容量) df参数: -a:...

  • Evaluation of Maching Learning

    模型的评估分线上评估与线下评估,如何来对模型进行线上评估与线下评估呢?它们之间又有什么关系 首先怎么区别它们: 首...

  • (2)全链路压测<架构解决方案>

    目的:评估机器扩容量、验证是否可支撑峰值 关键核心点:1)系统、中间件如何配合改造升级 2)构造、隔离压测数据3...

网友评论

      本文标题:如何评估线上系统的容量? (一)

      本文链接:https://www.haomeiwen.com/subject/pnukvttx.html