• 全球地域压测,即压即用,大促压测利器来了~


    作者:拂衣

    引言

    “压测脚本在我压测环境上跑的好好的,成功率、RT 都很正常,放到本地跑怎么表现就不一样了?”

    大家压测时是否都遇到过上述问题?

    除了老生常谈的硬件配置原因,流量分布因素往往容易被忽略。

    为什么要模拟真实用户流量

    压测是为了模拟一定量的真实用户对系统进行访问。真实的用户量可以通过设置并发线程数(虚拟用户数)来模拟;用户的来源分布,具体说是流量分布,也是重要的模拟条件。

    辅助全局容量规划

    用户量较大的应用,一般会采用异地多活的部署方式。出于成本考虑,各中心部署规格不一定相同,当地用户越多,中心实例数越多,规格越高。大促压测就是要按照真实用户分布比例,来模拟流量。测试出哪些中心容量水位过高,会造成当地用户响应延迟甚至服务崩溃;哪些中心容量水位又过低,可以适当降级,将多余的实例额度合理分配出去。实现从全局层面规划容量,在撑住大促流量的同时,也合理控制成本。

    测试出真实相映延迟

    数据表明,对于电商业务核心接口,响应时间每增加 100ms,营收额对应下降 1%。如果施压机和服务器在同一机房,测试出的请求响应时长(RT)会比真实情况要低,因为用户是全国分布的。对响应延迟误判低出的零点几秒,就可能会造成对大促成交额的错误预期。

    通过下图可以直观的看出问题:

    1.png

    如何模拟真实流量

    传统方案

    大部分业务的用户并不是按地域均分的,相反,往往很不均匀。要模拟真实流量分布,施压机需要在各地分散部署,并且支持按地域、按量分配,在压测时,还要支持实时的统一调度。如果施压机都分布在一个 Region,甚至是一个可用区内,那是无法模拟出来自全球用户请求的。

    这样就需要在国内和海外部署大量的施压机,如果压测频率并不很高,那机器的闲置成本可想而知。而按地域、按量分配的调度系统,也需要一定的维护成本。

    阿里云 PTS 方案

    使用阿里云性能测试服务(PTS)压测时,开启流量地域定制功能,即可指定施压机的地域分布,目前支持全球 22 个 Region 的地域定制。阿里云 PTS 作为大促压测重武器,“威力”不减,上手更轻量化。

    支持地域见表格:

    2.png

    无论选用哪种方案,最终都要达到施压机地域分布和用户分布一致。

    操作指南

    1、创建一个压测场景,参考 PTS 指导文档(具体请见文末相关链接);

    2、在施压配置中,打开流量地域配置,按业务需求分配流量比例,右侧可以看到流量分布的饼图:

    3.png

    3、开始压测,在压测概览页,可以查看流量地域分布:

    4.png

    5.png

    总结

    压测时,压力流量来源是一个很容易被忽略的因素,要保证压测结果真实可信,就需要按照真实用户的地域分布来准备施压机。阿里云 PTS 提供了流量地域定制功能,即压即用,支持全球 22 个 Region,9.9¥体验版资源包即可使用。

    相关链接

    1)阿里云PTS:

    https://pts.console.aliyun.com/#/overviewpage

    2)开通PTS体验版资源包

    https://common-buy.aliyun.com/?commodityCode=ptsbag#/buy

    3)PTS 指导文档​https://help.aliyun.com/document_detail/90887.html

  • 相关阅读:
    Net Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程
    Xamarin开发手机聊天程序
    线上处理数据转载
    Logstash
    Webpack按需加载一切皆模块
    网络编程
    NET Core 事件总线
    Using INSERT IGNORE with MySQL to prevent duplicate key errors
    Spring的两种任务调度Scheduled和Async
    Embedded servlet containers
  • 原文地址:https://www.cnblogs.com/alisystemsoftware/p/15699547.html
Copyright © 2020-2023  润新知