Step4 明确约束条件
约束条件的存在主要是作为线上压测停止的信号,常常会包括业务指标和资源指标。其中只要有一项指标达到临界值,则停止压测将当前容量指标的值作为集群的最大处理能力,例如某项服务质量要求响应时间不超过100ms,那当响应时间达到临界值时,尽管其它指标并没有达到极限但是也把此时作为集群最大处理能力。因此服务指标的选取原则:1)业务需求 2)资源使用瓶颈。一则保证产品的服务质量,二来保证系统的安全。
Step5 线上压测
线上压测的主要目的主要用于获取集群的最大处理能力,而对于线上压测的手段主要介绍三种,针对不同的集群系统架构特点和业务类型选取不同的压测手段。
模拟请求
模拟请求,即是模拟客户端的调用方式向压测服务器发起请求,简单易操作。
测试数据:可以通过分析线上日志分析,根线上业务配比建立压测模型,对于HTTP请求业务还有一种简单的方式,通过提取线上日志数据URL直接用于压测请求数据。
实施步骤
ü 将线上一台节点offline,测试客户端直连被测服务器
ü 客户端梯度增加并发(50),不断增加并发直至超过设定的服务指标
优缺点
测试效果不受服务实际流量的限制,压测时间灵活,适用于GET请求不会产生脏数据。业务指标可以通过测试客户端直接获取。
风险评估
风险低,首先机器offline不会影响到线上的正常请求;其次缓慢增加并发,不会造成服务崩溃的情况。
线上引流
线上引流,即将线上其它节点的请求复制到被测服务器上,推荐使用Tcpcopy工具。
测试数据:线上请求直接复制引流,无需准备数据
实施步骤
ü 将线上一台节点Off-line,按照Tcpcopy部署的方法部署client和server,为了便于指标的统计,通常将Tcpcopy部署在nginx所在服务器,被压测服务器前需要增加一层nginx服务器。
ü 将集群的其它节点流量复制到off-line节点上,可以通过tcpcopy –r参数逐步增加复制系数,不断增加-r参数直至超过设定的服务指标
ü 如果100%全部线上流量都不能压测到off-line节点的瓶颈,再逐步放大引流系数
优缺点
请求真实,能够放大流量,测试效果不受服务实际流量的限制,压测时间灵活,但环境部
署稍微麻烦,对于PUT请求需要做一些业务处理,避免产生脏数据。