V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yangyuhan12138
V2EX  ›  程序员

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

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

    我们是小公司之前一直没怎么做过压测,基本上都是能用就行,逻辑完整不出错就行
    但是最近要搞秒杀活动,流量会很大,所以得提前压一压
    本人比较倾向于流量复制,觉得像 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 写的
    Flourite
        27
    Flourite  
       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   ·   我们的愿景   ·   实用小工具   ·   915 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:55 · PVG 04:55 · LAX 13:55 · JFK 16:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.