V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhuzhibin
V2EX  ›  问与答

[!] 老哥们分布式压测一般选用啥方案?

  •  
  •   zhuzhibin · 2021-03-18 14:04:11 +08:00 · 1701 次点击
    这是一个创建于 1345 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT,开源的且自己实践过的有 Apache 的 Jmeter 分布式方案,以及 wrk 依赖 lua 脚本进行压测,ab 太简陋这里就不说咯,也网上查询了一些方案,但是大部分都是大同小异,例如还有 py 写的 locust,没使用过,但是本质上应该跟 jmeter 很接近。

    Jmeter 分布式压测发现的问题在于不稳定,一般是 master 机控制 slave 机,但是并发数上来的时候,起压机很不稳定,另外最蛋疼的是 Jmeter 关于线程数那些的配置问题,至今摸不透,例如有 10 台机器,单机 QPS 假如是 500,那么期望当然 10 台的结果是接近 10*500QPS,但是随着机器的增加,起压机也增加,QPS 反而会越来越低,控制机也容易卡顿,网上的帖子都是大同小异,现在是摸不清楚规范是什么,Jmeter 同样的配置,机器也一致,负载那些都降下来,重复压测的数据波动很大。
    wrk 压测尝试了一下,如果增加被压机器,效果也不是期望的那样约等于倍数增长的 QPS,例如 2 台机器,同样的配置 QPS-> 2000,继续增加倍数的机器,QPS 还是差不多,压不上去。

    所以小白这里请教一下老哥们,你们一般分布式压测是采用什么样的方案或者有什么样的规范,问题很简单:

    单机 QPS:500,那么期望机器的数量跟单机的 QPS 应该是约等于或者接近倍数才是合理的,另外 wrk 分布式一般 lua 脚本怎么搞现在还没研究过,老哥们你们一般怎么搞哦,例如压测单机、多机负载均衡的 QPS ?

    9 条回复    2021-03-18 15:47:55 +08:00
    zhuzhibin
        1
    zhuzhibin  
    OP
       2021-03-18 14:22:02 +08:00
    🚘🚘🚘🚘🚘🚘🚘🚘🚘
    akumazero
        2
    akumazero  
       2021-03-18 14:38:44 +08:00
    我用的就是 locust 感觉挺方便的 20000 以下 qps 基本等于单机直接*机器数,就用官方文档 dockercompose 的方式就可以,每个机子放一份脚本
    goodryb
        3
    goodryb  
       2021-03-18 14:41:05 +08:00
    公网压测考虑下 paas 服务,例如阿里云的 pts
    FakNoCNName
        4
    FakNoCNName  
       2021-03-18 14:47:11 +08:00
    tsung,分布式压测里面这个是当之无愧的巨佬,用了它就觉得 Jmeter 啥的也就是界面稍微友好一些。
    zhuzhibin
        5
    zhuzhibin  
    OP
       2021-03-18 15:41:29 +08:00 via iPhone
    @akumazero 那我可以在一台 master 机操作吗 ?老哥我到时研究下
    zhuzhibin
        6
    zhuzhibin  
    OP
       2021-03-18 15:42:20 +08:00 via iPhone
    @goodryb pts 了解过 我们一般的确也是在内网压负载均衡 晚点看看你说的那个
    zhuzhibin
        7
    zhuzhibin  
    OP
       2021-03-18 15:42:46 +08:00 via iPhone
    @FakNoCNName 这么猛?稳定吗
    akumazero
        8
    akumazero  
       2021-03-18 15:45:06 +08:00
    @zhuzhibin #5 单 locust 自己不行,要 master 暴露端口后启动,然后其他的 worker 分别接入,但是启动与结果都是 master 上操作和生成
    zhuzhibin
        9
    zhuzhibin  
    OP
       2021-03-18 15:47:55 +08:00 via iPhone
    @akumazero 感觉流程跟 jmeter 接近
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2784 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:20 · PVG 22:20 · LAX 06:20 · JFK 09:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.