[转] 进行压测前的准备工作
2018-11-18 本文已影响5人
Rethink
线上压测策略
-
为什么要进行线上压测?
线下环境的机器配置低,规模数量小,测试结果不能反映线上真实性能情况; -
线上压测时间选择
核心原则是不能影响真实用户的使用。因此压测时间要选择每天业务的最低峰,这样对系统的影响最小 -
数据准备
线上压测不能使用真实的用户数据,一般都是提前准备一批线上压测专用账号。为了与真实账号有所区分,可以给账号加上前缀,如id_xxxx等,也方便压测完成后进行数据清理。 -
线上压测报备和预案
- 压测前一定要预先通知团队相关人员,如运维、DBA、研发、运营等;
- 压测开始时,必须最好恢复预案,出现紧急情况时便于及时处理;
- 如果压测涉及到写库操作,需要做好数据清理方案,不然可能会影响到后续的报表统计;
- 线上压测执行策略
- 初始并发一定要小一些,然后逐渐网上升,直至到底目标并发;
- 压测时间不宜过长(负载测试除外),一般5min以下即可;
3.压测时系统要做全链路监控,一旦出现异常情况,如机器负责过高、报错率上升等,应立即停止测试,排查问题;
判断网络性能瓶颈
-
确定本次压测链路上网络流量上限值
在压测之前,提前确定本地压测的数据流向,即压测请求从压力机上发出后,经过了哪些环节,最终到达服务器上。响应数据经过哪些环节,又返回到压力机。并且每个环节中的网络上限是多少,最终我们整个网络环路的流量上限,就取决于环路中最低的那个上限值(木桶原理)。
举例说明,如下图所示:
网络请求数据首先是从压力机的网卡发出,一般的网卡都是千兆网卡,然后网络带宽也会有限制,比如是100Mb,可能还会经过一些网络设备,如路由器、交换机、防火墙等,这些设备也都有网络上限,假如都是10000Mb,最后到达目标服务器的网卡(千兆网卡)。所以从上面的网络架构来看,整体链路最高支持100Mb的数据流量,大约是100/8=12.5MB。
如果在局域网内,几乎就不用考虑带宽和网络设备的问题了,所以局域网内网卡的上限就是整个链路的网络上限。 -
压测过程中,当前网络上的流量大小是多少
一般在目标服务器上,通过一些工具对网络进行监控,如nmon、dstat、sar、nload等,可以查看到实时的网络数据。按照上面图中的分析,假如通过监控Linux服务器,发现服务器的网卡流量已经达到12.5MB左右,那么就说明当前网络链路上的流量已经达到上限了。当前网络已经出现了瓶颈。