大家平时是怎么做压力测试的?

2018-12-11 09:19:49 +08:00
 yestodayHadRain

上周项目在线上使用的时候发生了个问题,一两秒内 300 个并发时服务器就死掉了,tomcat 没有崩溃但是就是请求没有响应不知道为什么?昨天用 jmeter 尝试复现,由于之前没有 jmeter 做过压力测试用,不知道是不是配置的不对,500 个并发服务都没有事情,最后和同事对接了下才发现压错了接口,崩溃的接口对数据库读写比较多所以死掉了,后来去压那个接口发现果然抗住不,看了下数据库连接池发现竟然是 c3p0,后来果断改成了 druid 然后就没事了.

关于这件事让我产生了一个疑问,做压力测试时如何根据测试的情况来推断出服务器在线上能抗住多少的并发呢?

4281 次点击
所在节点    问与答
25 条回复
linil
2018-12-12 19:17:36 +08:00
@yestodayHadRain 你是指工具吗?公司没要求,我是用 JMeter 的。
yestodayHadRain
2018-12-12 19:24:42 +08:00
@linil 我也用的是 jmeter,但是我开 2000 个线程去压接口,服务没挂,就能说明服务能抗住 2000 的并发吗?而且我用 druid 的监控平台看,虽然是 2000 个线程去压但是接口的最大并发才只有 200 这是为什么呢?
linil
2018-12-12 19:52:56 +08:00
@yestodayHadRain 服务没挂代表短时间内抗住了 2000 线程(可认为是 2000 用户),但不代表 2000 并发,而且你看并发看 JMeter 的 TPS 那个值而不是设置的线程数。
linil
2018-12-13 12:44:30 +08:00
有点忙,上面匆匆回复了。
比如你是开了 200 个窗口处理业务,每个窗口一秒可以处理一件业务,也就是最大业务处理速度就是 200TPS。
现在来了 2000 个客户,这个时候你总的处理速度还是 200TPS 的,其他客户就必须排队,结果导致的是平均每个用户的等待时间变长了(就是响应时间)。
yestodayHadRain
2018-12-14 13:50:38 +08:00
@linil
1.我从 jmeter 的聚合报告看并没有看到 TPS 参数,请问这个是算出来的吗?
2.第二个问题,既然 jmeter 的并发线程数不能够说明系统的最大并发,那么请问如何根据测试数据估算出线上能抗住的最大并发呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/516345

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX