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 ?
1
zhuzhibin OP 🚘🚘🚘🚘🚘🚘🚘🚘🚘
|
2
akumazero 2021-03-18 14:38:44 +08:00
我用的就是 locust 感觉挺方便的 20000 以下 qps 基本等于单机直接*机器数,就用官方文档 dockercompose 的方式就可以,每个机子放一份脚本
|
3
goodryb 2021-03-18 14:41:05 +08:00
公网压测考虑下 paas 服务,例如阿里云的 pts
|
4
FakNoCNName 2021-03-18 14:47:11 +08:00
tsung,分布式压测里面这个是当之无愧的巨佬,用了它就觉得 Jmeter 啥的也就是界面稍微友好一些。
|
7
zhuzhibin OP @FakNoCNName 这么猛?稳定吗
|