问下大家公司里都用什么工具压测 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yangyuhan12138
V2EX    程序员

问下大家公司里都用什么工具压测

  •  
  •   yangyuhan12138 2020-04-20 15:00:58 +08:00 6183 次点击
    这是一个创建于 2009 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们是小公司之前一直没怎么做过压测,基本上都是能用就行,逻辑完整不出错就行
    但是最近要搞秒杀活动,流量会很大,所以得提前压一压
    本人比较倾向于流量复制,觉得像 jmeter 这种直接压接口的并不是很科学,不真实

    主要选择了两款工具

    tcpcopy 和 goreplay
    但是没有使用经验问下大家的建议,可以推荐其他方案,现在在技术选型,还没定,如果是 tcpcopy 的话想问问压得过程怎么监测程序状态(测试报告,配合 skywalking 监测能看出来吗)

    33 条回复    2020-04-21 09:34:36 +08:00
    madfloyd2016
        1
    madfloyd2016  
       2020-04-20 15:02:12 +08:00 via iPhone
    ddos 挑衅
    yangyuhan12138
        2
    yangyuhan12138  
    OP
       2020-04-20 15:04:56 +08:00
    per
        3
    per  
       2020-04-20 15:29:10 +08:00   4
    你就发个帖在论坛里: 求 ddos,一堆人免费给你做
    yangyuhan12138
        4
    yangyuhan12138  
    OP
       2020-04-20 15:33:45 +08:00
    @per
    yangyuhan12138
        5
    yangyuhan12138  
    OP
       2020-04-20 15:34:33 +08:00
    @per 跟论坛发我认为 200 元以下没有好耳机同理?
    dilu
        6
    dilu  
       2020-04-20 15:35:50 +08:00
    简单 apache ab 复杂的 jmeter
    guyeu
        7
    guyeu  
       2020-04-20 15:40:55 +08:00
    客户端一般用 jmeter 或者 apachebench...一个接口一个接口压...不喜欢这种流量复制的方式,会导致有些接口压不到。。。监控用 micrometer+prometheus+grafana 了,需要整体规划,要不然会弄得很奇怪。
    jorneyr
        8
    jorneyr  
       2020-04-20 15:41:51 +08:00
    哪里能买 DDOS 服务?
    sbbeta
        9
    sbbeta  
       2020-04-20 15:42:11 +08:00 via Android
    @yangyuhan12138 去全球主机论坛发一贴,估计测到怀疑人生
    xuqd
        10
    xuqd  
       2020-04-20 15:42:17 +08:00
    gatling
    Laimf
        11
    Laimf  
       2020-04-20 15:48:24 +08:00
    你这只是秒杀活动,我觉得 JMeter 完全 ok 吧,做一个简单流量模型就可以了。
    你如果用 tcpcopy,其实也是流量录制再进行回放,你首先就需要录制到这么大的流量或者进行流量放大(这个我感觉不靠谱),而且还需要注意脏数据的处理。

    监控的话,一般就看 cpu,压的时候 cpu 多,内存小,就是 cpu 密集型,从这个方向去看,内存多,cpu 小,就是吃内存,排查这个方面。

    你有 skywalking,这样的链路跟踪,肯定是 ok 的呀,不晓得你们配置怎么样,这个东西本身会消耗一定资源,监控程序状态不晓得你说的什么方面,一般看服务器资源吧,程序有问题会表现在外层,在资源方面有体现,再跟踪下 log 应该可以,后面就是自己一层一层排查了。
    omL72EEc
        12
    omL72EEc  
       2020-04-20 15:51:55 +08:00
    @sbbeta “大伙儿都非常的热情”
    ddup
        13
    ddup  
       2020-04-20 15:53:08 +08:00
    Visual Studio 自带的负载测试。
    zfz001
        14
    zfz001  
       2020-04-20 15:55:48 +08:00 via iPad
    ddos 可还行
    yangyuhan12138
        15
    yangyuhan12138  
    OP
       2020-04-20 16:00:58 +08:00
    @omL72EEc 哈哈哈哈哈哈哈 认真的啊 ddos 的别来了
    yangyuhan12138
        16
    yangyuhan12138  
    OP
       2020-04-20 16:02:52 +08:00
    @Laimf 我现在的思路是录制流量再放大,想吸取下 v2er 们的方案 Jmeter 还有个不足就是数据都是自己造的啊 不真实
    yangyuhan12138
        17
    yangyuhan12138  
    OP
       2020-04-20 16:10:46 +08:00
    @guyeu 一个个压其实也可以但是得花时间梳理要用到的所有相关接口,不可能吧整个系统的接口都压,那太多了,梳理的话梳漏的可能性比较大
    polymerdg
        18
    polymerdg  
       2020-04-20 16:12:23 +08:00
    wrk
    Laimf
        19
    Laimf  
       2020-04-20 16:13:15 +08:00
    流量录制再放大,只适用于 get 请求(不能有 post 不然会有很多脏数据),我不清楚你这个秒杀具体是怎么样哈。

    我说下,我觉得怎么搞,秒杀的核心就是缓存和队列,一大波请求过来,你这边能不能扛得住,具体业务逻辑应该没什么很复杂,就是加锁判断。所以要注意下死锁,还有就是不要导致请求超时。

    你说的 jmeter 数据要自己造,不太清楚你要造什么数据,一般来说,你可以从数据库直接拿历史数据就可以呀。
    jaaazzz
        20
    jaaazzz  
       2020-04-20 16:15:30 +08:00
    jmeter 有吊用?不用 loadrunner 用啥
    pmispig
        21
    pmispig  
       2020-04-20 16:20:59 +08:00
    我喜欢定制化的,先按规则生成数据,然后自己用 go 或者 erlang 写
    wangyzj
        22
    wangyzj  
       2020-04-20 16:21:17 +08:00
    @dilu #6 附议
    opengps
        23
    opengps  
       2020-04-20 16:25:54 +08:00
    我最早是自己写程序多线程轮训,这样能够构造出很多类型数据出来
    lingtao13
        24
    lingtao13  
       2020-04-20 16:30:10 +08:00
    内部用的微服务测用 jmeter,走流程上线正式服务用 loadrunner
    leafShimple
        25
    leafShimple  
       2020-04-20 16:58:40 +08:00
    wrk jmeter
    asAnotherJack
        26
    asAnotherJack  
       2020-04-20 17:02:11 +08:00
    wrk,另外还用过一个 hey,golang 写的
    dV9zZM1wROuBT16X
        27
    dV9zZM1wROuBT16X  
       2020-04-20 17:07:27 +08:00
    siege/wrk/locust
    yangyuhan12138
        28
    yangyuhan12138  
    OP
       2020-04-20 17:31:50 +08:00
    @Laimf 就是要 post 呀 ....什么接口都得压呗 数据落测试库
    viakiba
        29
    viakiba  
       2020-04-20 17:35:05 +08:00
    ngrinder 支持 groovy 和 python,groovy 还能调用 jar 文件
    areless
        30
    areless  
       2020-04-20 17:38:26 +08:00 via Android
    wrk 加 lua
    Laimf
        31
    Laimf  
       2020-04-20 17:49:17 +08:00
    @yangyuhan12138 post 的请求,你录制回放的话,就有点难搞了哦,除非你在服务端做 mock,如果这样的话,感觉工程量更大。
    yangyuhan12138
        32
    yangyuhan12138  
    OP
       2020-04-21 09:01:03 +08:00
    @Laimf 我打算的就是改服务 做 mock 调用
    yangyuhan12138
        33
    yangyuhan12138  
    OP
       2020-04-21 09:34:36 +08:00
    @areless
    @leafShimple
    @asAnotherJack
    @Flourite
    了解了一下 wrk 确实是个好工具 我感觉比 jmeter 科学
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2715 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:51 PVG 22:51 LAX 07:51 JFK 10:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86