• 阿里5年经验之谈 —— 记录一次jmeter压测的过程!


    在软件架构与中间件实验的最后,要求进行非功能测试,那得非压力测试莫属了。虽然之前学习秒杀项目的时候看视频里面用过jmeter,但没有自己实操过,趁着这次机会,使用一下。

    QPS与TPS

    1、TPS:

    Transactions Per Second,意思是每秒事务数。一个事务是指客户端向服务器发送请求然后服务器做出反应的过程,具体的事务定义,可以是一个接口、多个接口、一个业务流程等等。以单接口定义为事务举例,每个事务包括了如下3个过程:

    1. 向服务器发请求
    2. 服务器自己的内部处理(包含应用服务器、数据库服务器等)
    3. 服务器返回结果给客户端

    如果每秒能够完成 N 次以上3个过程,TPS 就是 N。

    TPS 是软件测试结果的测量单位。我们在进行服务性能压测时,接口层面最常关注的是最大 TPS 以及接口响应时间,个人理解 TPS 可以指一组逻辑相关的请求,而服务整体处理能力取决于处理能力最低模块的TPS值。

    2、QPS:

    Queries Per Second,意思是每秒查询率。指一台服务器每秒能够响应的查询次数,用于衡量特定的查询服务器在规定时间内所处理流量多少,主要针对专门用于查询的服务器的性能指标,比如dns,它不包含复杂的业务逻辑处理,比如数据库中的每秒执行查询sql的次数。QPS 只是一个简单查询的统计显然,不能描述增删改等操作,显然它不够全面,所以不建议用 QPS 来描述系统整体的性能;

    QPS 基本类似于 TPS,但是不同的是,对于一个事务访问,会形成一个 “ T ”;但一次 " T " 中,可能产生多次对服务器的请求,服务器对这些请求,就可计入 QPS 之中。

    3、区别:

    1. 如果是对一个查询接口压测,且这个接口内部不会再去请求其它接口,那么 TPS = QPS,否则,TPS ≠ QPS
    2. 如果是容量场景,假设 N 个接口都是查询接口,且这个接口内部不会再去请求其它接口,QPS = N * TPS\
    1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
    2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
    3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
    4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
    5. 可以免费学习!划重点!开源的!!!
    6. qq群号:110685036【暗号:csdn999

    Jmeter配置WebSocket请求

    利用plugin manager中提供的WebSocket插件,可以进行WebSocket应用程序的压力测试。

    使用jmeter工具对TPS进行测试,其中测试的事务为consumer建立连接,并发送订阅消息,记录该事务的吞吐量。jmeter配置500个线程,在3秒内每个线程发起一次上述事务,重复两次,吞吐量结果如下表所示(仅展示重要信息):

    可以看到,可以达到332.3的TPS,效率还是不错的。同时,应用进程的资源监视图如下所示:

    可以看到应用进程的自选消耗并没有激增。下面来调整一下参数,试试线程数5000, 1秒内发起请求,重复两次的结果:

    结果是电脑炸了,,,单机无法达到一秒内创建5000个线程发起请求

    观察日志可以看到Jmeter的堆空间直接溢出了,也想过通过jvm参数-Xmx来配置堆空间大小,但是本机的物理内存总共也就8G,怕整个电脑都死机,没有继续测试了╭(╯^╰)╮

    看的出来高并发场景还是很难模拟的,仅仅靠单机是做不到的,,,越来越佩服大厂的架构师了。

    将参数改成线程数2000, 1秒内发起请求,重复两次。

    TPS达到了438,说明本实验产品的性能还是不错的。

    如果觉得有用,就请关注、点赞、在看、分享到朋友圈吧。 

  • 相关阅读:
    c++小知识
    python的环境,你再也不用愁-conda
    Java面试题之synchronized关键字原理以及锁相关
    Google Earth Engine(GEE)—— 下载一个最简单的sentinel-2影像的单日ndvi下载
    Centos环境使用Docker安装Kafka
    第五章Maven依赖的特性-进阶篇
    R语言将多景遥感影像拼接在一起的方法
    树莓派 交叉编译工具链的安装
    springboot项目打包成可执行jar
    MySQL 百万级/千万级表 总记录数查询
  • 原文地址:https://blog.csdn.net/qq_43371695/article/details/134449297