美文网首页性能测试
缩放Azure Service Fabric,用jmeter进行

缩放Azure Service Fabric,用jmeter进行

作者: 又红又专模式 | 来源:发表于2018-04-27 09:18 被阅读17次

    本文记录了使用jmeter对Azure Service Fabric进行压力测试的情况。压力目标为上篇文章里创建完成的示例程序--Voting

    1. 节点配置:D1 标准 1 vCPU,3.5 GB,4 数据磁盘,2x500 最大 IOPS,50 GB 本地 SSD
    节点配置
    • jmeter项目如下图
      1. 单记录操作使用固定Url:api/Votes/press01
      2. 多记录使用随机函数api/Votes/${__RandomString(2,abcdefg)}
      3. 使用1~300个线程,610秒内启动,差不多每2秒增加一个。
      4. 每个线程PUT添加和GET查询都执行一次


        jmeter线程组配置
    jmeter http put操作

    先测试单记录操作的情况:

    先测试添加投票的接口,一直投一个票,发现Throughput 在50左右,本地测试也是一样情况,这时监控服务器,发现Cpu和内存都不高,经过分析应该是因为只对一行记录进行写入操作()。

    看一下响应时间图,如下图,可以看出,当操作单条记录时,响应时间几乎是随并发量线性增长的,操作的用户越多等的时间越长(因为单条记录的读写时间是固定的,在没有缓存和排队的情况下,这是必然现像)。当并发线程为50个时,响应时间在1秒左右,当300个线程时响应时间为5.8秒

    image.png

    但应该不会影响其它投票项的操作(服务器压力一直在20~30%也可以说明这一点。


    image.png

    吞吐量,见下图,可以看出,几乎保持在58左右,就是说Service Fabric的Statful的存储响应时间应为1/58秒=17毫秒左右。
    使用随机函数,测试投不同票(写入不同记录)的情况,服务器负载高了,CPU在40%左右


    image.png
    下图为投指定票,随机投票,获取结果三种情况下CUP的负载情况:
    image.png

    增加节点到2和3个,并依次测试:

    在Service Fabric Explorer中缩放Web节点

    生成结果报告并比较结果

    .\jmeter -g H:\jmeter_service_fabric_voting\service_fabric-voting.csv -o H:\jmeter_service_fabric_voting\report

    压力测试报告结果分析

    我分别在一个节点,2个节点,3个节点下测试了以下3个操作:

    • 单记录读写操作(put single)
    • 多记录除随机读写操作(put random)
    • 多记录查询操作(get)


      报告

    单记录操作分析:(不同节点数量变化不大,节点越多,吞吐量反而有略微下降)

    单记录读写的平均响应时间Average Response Times(ms)和吞吐量(Throughput),在1~3个节点时分别为:

    • 3022ms,56
    • 3229ms,57
    • 3325ms,55

    多记录操作分析:(每增加一下节点,吞吐量增加1.8倍左右)

    多记录随机读写的平均响应时间Average Response Times(ms)和吞吐量(Throughput),在1~3个节点时分别为:

    • 1个节点:1873ms,102
    • 2个节点:1017ms,180
    • 3个节点:743ms,245

    查询操作:(因为测试用例只获取第一页,所以多节点性能并无明显提升)

    查询操作的平均响应时间Average Response Times(ms)和吞吐量(Throughput),在1~3个节点时分别为:

    • 1个节点:1051ms,237
    • 2个节点:649ms,279
    • 3个节点:648ms,280

    不同并发量下的响应时间

    可以看出各种情况下响应时间都是随着并发量增加呈线性增长的。


    Time Vs Threads

    相关文章

      网友评论

      • 邵佳楠:您好,请问下Service Fabric是啥。。。。我看了好多的概念一直没懂他到底有啥用。。。。。是不是我可以简单的写个rpc程序然后把他部署在serverfabric上面?但是部署在上面有什么好处呢?还有写个简单的rpc程序我怎么才能部署在servicefabric上呢?希望大佬能出这个这样的入门教程,我相信还有很多这方面的小白很期待这样的教程

      本文标题:缩放Azure Service Fabric,用jmeter进行

      本文链接:https://www.haomeiwen.com/subject/qptmlftx.html