我们是小公司之前一直没怎么做过压测,基本上都是能用就行,逻辑完整不出错就行
但是最近要搞秒杀活动,流量会很大,所以得提前压一压
本人比较倾向于流量复制,觉得像 jmeter 这种直接压接口的并不是很科学,不真实
tcpcopy 和 goreplay
但是没有使用经验问下大家的建议,可以推荐其他方案,现在在技术选型,还没定,如果是 tcpcopy 的话想问问压得过程怎么监测程序状态(测试报告,配合 skywalking 监测能看出来吗)
1 madfloyd2016 2020-04-20 15:02:12 +08:00 via iPhone ddos 挑衅 |
![]() | 2 yangyuhan12138 OP @madfloyd2016 .... |
![]() | 3 per 2020-04-20 15:29:10 +08:00 ![]() 你就发个帖在论坛里: 求 ddos,一堆人免费给你做 |
![]() | 4 yangyuhan12138 OP @per |
![]() | 5 yangyuhan12138 OP @per 跟论坛发我认为 200 元以下没有好耳机同理? |
6 dilu 2020-04-20 15:35:50 +08:00 简单 apache ab 复杂的 jmeter |
![]() | 7 guyeu 2020-04-20 15:40:55 +08:00 客户端一般用 jmeter 或者 apachebench...一个接口一个接口压...不喜欢这种流量复制的方式,会导致有些接口压不到。。。监控用 micrometer+prometheus+grafana 了,需要整体规划,要不然会弄得很奇怪。 |
8 jorneyr 2020-04-20 15:41:51 +08:00 哪里能买 DDOS 服务? |
9 sbbeta 2020-04-20 15:42:11 +08:00 via Android @yangyuhan12138 去全球主机论坛发一贴,估计测到怀疑人生 |
![]() | 10 xuqd 2020-04-20 15:42:17 +08:00 gatling |
![]() | 11 Laimf 2020-04-20 15:48:24 +08:00 你这只是秒杀活动,我觉得 JMeter 完全 ok 吧,做一个简单流量模型就可以了。 你如果用 tcpcopy,其实也是流量录制再进行回放,你首先就需要录制到这么大的流量或者进行流量放大(这个我感觉不靠谱),而且还需要注意脏数据的处理。 监控的话,一般就看 cpu,压的时候 cpu 多,内存小,就是 cpu 密集型,从这个方向去看,内存多,cpu 小,就是吃内存,排查这个方面。 你有 skywalking,这样的链路跟踪,肯定是 ok 的呀,不晓得你们配置怎么样,这个东西本身会消耗一定资源,监控程序状态不晓得你说的什么方面,一般看服务器资源吧,程序有问题会表现在外层,在资源方面有体现,再跟踪下 log 应该可以,后面就是自己一层一层排查了。 |
![]() | 13 ddup 2020-04-20 15:53:08 +08:00 Visual Studio 自带的负载测试。 |
14 zfz001 2020-04-20 15:55:48 +08:00 via iPad ddos 可还行 |
![]() | 15 yangyuhan12138 OP @omL72EEc 哈哈哈哈哈哈哈 认真的啊 ddos 的别来了 |
![]() | 16 yangyuhan12138 OP @Laimf 我现在的思路是录制流量再放大,想吸取下 v2er 们的方案 Jmeter 还有个不足就是数据都是自己造的啊 不真实 |
![]() | 17 yangyuhan12138 OP @guyeu 一个个压其实也可以但是得花时间梳理要用到的所有相关接口,不可能吧整个系统的接口都压,那太多了,梳理的话梳漏的可能性比较大 |
18 polymerdg 2020-04-20 16:12:23 +08:00 wrk |
![]() | 19 Laimf 2020-04-20 16:13:15 +08:00 流量录制再放大,只适用于 get 请求(不能有 post 不然会有很多脏数据),我不清楚你这个秒杀具体是怎么样哈。 我说下,我觉得怎么搞,秒杀的核心就是缓存和队列,一大波请求过来,你这边能不能扛得住,具体业务逻辑应该没什么很复杂,就是加锁判断。所以要注意下死锁,还有就是不要导致请求超时。 你说的 jmeter 数据要自己造,不太清楚你要造什么数据,一般来说,你可以从数据库直接拿历史数据就可以呀。 |
![]() | 20 jaaazzz 2020-04-20 16:15:30 +08:00 jmeter 有吊用?不用 loadrunner 用啥 |
![]() | 21 pmispig 2020-04-20 16:20:59 +08:00 我喜欢定制化的,先按规则生成数据,然后自己用 go 或者 erlang 写 |
![]() | 23 opengps 2020-04-20 16:25:54 +08:00 我最早是自己写程序多线程轮训,这样能够构造出很多类型数据出来 |
24 lingtao13 2020-04-20 16:30:10 +08:00 内部用的微服务测用 jmeter,走流程上线正式服务用 loadrunner |
25 leafShimple 2020-04-20 16:58:40 +08:00 wrk jmeter |
![]() | 26 asAnotherJack 2020-04-20 17:02:11 +08:00 wrk,另外还用过一个 hey,golang 写的 |
![]() | 27 dV9zZM1wROuBT16X 2020-04-20 17:07:27 +08:00 siege/wrk/locust |
![]() | 28 yangyuhan12138 OP @Laimf 就是要 post 呀 ....什么接口都得压呗 数据落测试库 |
![]() | 29 viakiba 2020-04-20 17:35:05 +08:00 ngrinder 支持 groovy 和 python,groovy 还能调用 jar 文件 |
![]() | 30 areless 2020-04-20 17:38:26 +08:00 via Android wrk 加 lua |
![]() | 31 Laimf 2020-04-20 17:49:17 +08:00 @yangyuhan12138 post 的请求,你录制回放的话,就有点难搞了哦,除非你在服务端做 mock,如果这样的话,感觉工程量更大。 |
![]() | 32 yangyuhan12138 OP @Laimf 我打算的就是改服务 做 mock 调用 |
![]() | 33 yangyuhan12138 OP |