容量规划概述
admin
2024-05-09 13:47:51
0次

容量规划是一个产品满足用户目标需求而决定生产能力的过程。

只有线性可水平扩展的集群才适合做容量规划(能通过获取一个节点的处理能力,计算出集群的处理能力)。

线上压测到单节点的某一指标达到临界值,从而计算出集群的最大处理能力,再根据线上历史监控获得当前集群实际运行负荷,通过计算即可求出理论服务器数。

若计算出集群当前的负荷快达到极限处理能力时,则可以通过垂直扩展(加CPU/内存/磁盘)和水平扩展(加服务器)两种方式来增加集群容量。

容量规划共分六步。

第一步,需要明确目标。

容量规划的目标是集群实际负荷小于等于集群理想负荷。

集群水位=集群负荷/集群能力 * 100%

集群能力=单机能力 * 实际服务器数

标准水位=标准负荷/标准集群能力 * 100%

标准集群能力=单机能力 * 理论服务器数

又因为集群负荷=标准负荷

所以集群水位 * 实际服务器数=标准水位 * 理论服务器数

理论服务器数=集群负荷 * 实际服务器数/(标准水位 * 集群能力)

注:单机能力是单台服务器压测阀值qps,是线上压测数据;

单机负荷是前一天单台服务器最大qps,是线上监控数据;

集群能力是单机能力 * 实际服务器数,是线上压测数据;

集群负荷是前一天集群最大qps,是线上监控数据;

单机水位是单机负荷/单机能力 * 100%;

集群水位是集群负荷/集群能力 * 100%。

当然满足目标的同时,集群的状态是受到约束的,资源是不可能无限供应,终会有一项资源会达到临界值。

约束条件有两类,一类是服务类,另一类是资源类。

服务类约束条件主要是响应时间小于等于200ms。

资源类约束条件主要是CPU利用率小于等于80%;内存占用小于等于1GB;磁盘IO使用率小于等于60%;带宽小于等于200Mbps。

第二步,需要了解集群特点。

不同的集群在选取容量指标和约束条件时是完全不同的,容量指标主要用于衡量集群的处理能力,而约束条件是压测停止的信号。

对于CPU密集型的集群,常常选择TPS(每秒处理请求数)作为集群的容量指标来衡量集群的处理能力,而约束条件则会重点关注CPU的使用率是否会率先达到瓶颈。

对于存储型的集群,选择流量(MB/S)作为容量指标,存储型的集群的TPS依赖于服务数据的大小,所以流量更适合来衡量集群的处理能力,而约束条件最先达到瓶颈的是网络流量或者IO。

若想要判断集群式的类型,则可以通过线下的性能测试结果来判断,线下的性能测试可以作为线上压测的参考依据。

第三步,需要选取合适的容量指标。

容量指标主要用于衡量服务器的处理能力。

容量指标的选取原则:

1)线上数据可采集;

2)能够客观反映服务器的处理能力。
作为容量指标,需要通过线上监控获取统计数据,其历史数据用于计算集群的实际负荷,而通过压测获得集群的最大处理能力。

第四步,需要明确约束条件。

约束条件主要是线上压测停止的信号,包括服务类指标和资源类指标。

只要有一项指标达到临界值,就会停止压测,并将当前容量指标的值作为集群的最大处理能力。

服务指标的选取原则:

1)服务需求——保证产品的服务质量;

2)资源使用瓶颈——保证系统的安全。

第五步,需要进行线上压测。

线上压测主要用于获取集群的最大处理能力。

线上压测的手段主要有三种,分别为模拟请求、线上引流和修改负载权重。

对于不同的集群系统架构特点和服务类型,选取不同的压测手段。

第一种压测手段:模拟请求。

模拟请求是模拟客户端的调用方式向压测服务器发起请求,简单易操作。
测试数据:

可以通过分析线上日志,根据线上服务配比建立压测模型,对于HTTP请求服务,可以通过提取线上日志数据URL直接用于压测请求数据。
实施步骤:
1)将线上一台节点offline,测试客户端直接连接被测服务器;
2)客户端梯度增加并发(50),不断增加并发直至超过设定的服务指标。
优缺点:

测试效果不受服务实际流量的限制,压测时间灵活,适用于GET请求不会产生脏数据。服务类指标可以通过测试客户端直接获取。
风险评估:

风险低,首先服务器offline不会影响到线上的正常请求;其次缓慢增加并发,不会造成服务崩溃的情况。

第二种压测手段:线上引流。

线上引流是将线上其它节点的请求复制到被测服务器上的操作,推荐使用Tcpcopy工具。
测试数据:线上请求直接复制引流,无需准备数据。
实施步骤:
1)将线上一台节点Offline,按照Tcpcopy部署的方法部署client和server,通常将Tcpcopy部署在nginx所在服务器,被压测服务器前需要增加一层nginx服务器;
2)将集群的其它节点流量复制到offline节点上,可以通过“tcpcopy –r参数”逐步增加复制系数,不断增加“-r参数”,直至超过设定的服务类指标;
3)若100%全部线上流量都不能压测到offline节点的瓶颈,则需要再次逐步放大引流系数。
优缺点:
请求真实,能够放大流量,测试效果不受服务实际流量的限制,压测时间灵活,但环境部署稍微麻烦,对于PUT请求需要做一些服务处理,避免产生脏数据。
风险评估:
风险低,首先服务器offline不会影响到线上的正常请求,缓慢增加流量复制,不会造成服务崩溃的情况。

第三种压测手段:修改负载权重。

对于一个集群,前面往往会有负载均衡服务器,通过修改nginx中upstream模块的负载均衡weight,可以不断增加集群某一节点的请求数,增加其访问压力。
测试数据:无需准备。
实施步骤:
1)缓慢增加nginx的负载均衡系数,使被测节点压力不断增加;

2)直至超过设定的服务类指标,停止增加压力。
优缺点:
完全真实的场景,压测数据准确,但是依赖自身的流量,压测时间不灵活,需要处于高峰期,对用户体验有一定影响。随着一台服务器的负载增加,响应时间会受到一定影响,这会直接反馈给在线用户。
风险评估:
风险低,虽然在高峰期进行压测,但是只需要修改nginx配置,再重启服务,这个对服务基本无影响。每次逐步增加weight不会出现服务器崩溃的情况。

第六步,需要进行线上监控。

线上监控不仅用于收集集群历史数据,监控计算集群的实际负荷,还用于在压测过程中,监控约束条件中的各种指标是否超限并停止压测。根据集群的特点和之前性能测试经验,关注容量指标和约束条件的服务和资源指标。集群历史数据是需要进行长期采集和整理的。

相关内容

热门资讯

AI做攻略、“双向奔赴”……国... 本文转自:人民网人民网记者 许维娜今年国庆假期,AI(人工智能)成了不少年轻人的“旅行搭子”。行前做...
合肥的这个“梗”, 翻篇了 社交平台的评论区,曾长期流传一句专属于合肥的黑色幽默。有人问合肥哪里好玩,本地网友半开玩笑地回复:合...
7万+旅游中高层都在的群,今天... 做旅游这行,资源卡位、渠道互通、项目落地——往往就差一个“对的机会”。我们的行业社群已聚集70,00...
一场帐篷音乐节,如何让井研从“... 帐篷音乐节现场封面新闻记者 周洪攀10月的研溪湿地,晚风里裹着柑橘的清甜与民谣的回响。夜幕降临,10...
白鹤翩翩落星愿,上海迪士尼度假... 10月9日,世界候鸟日前夕,上海迪士尼度假区星愿公园的湖风里多了一分白鹤的灵动。三座白鹤雕塑正式揭幕...
成都锦江边赏初秋枫叶飘飘 目前,成都锦江边国华街枫叶树红了。近年来,国华街附近的几条街都栽种了红枫树,是城区较集中看枫叶的点位...
GBTA:商务旅行正在复苏,但... 亚太正在成为全球商务旅行增长的重要引擎。在经历疫情后的快速反弹之后,全球商务旅行正在进入一个新的增长...
从景区焕新到节赛引流 邹城双节... 齐鲁网·闪电新闻10月9日讯 中秋、国庆“双节”假期,邹城市文化和旅游局提前谋划、周密部署,立足自身...
江山如此多娇 且看石楼今朝 金秋十月,黄河岸畔秋意盎然,丰收盛会喜迎国庆。本次石楼国庆文旅活动以“江山如此多娇,且看石楼今朝”为...
海南国庆假期接待游客475.4... 2026年国庆假期,海南接待游客475.40万人次,较2025年增长13.1%,较2024年增长15...