性能常识 关于 Jmeter 压力测试的使用

昨天有雨 · 2018年12月10日 · 最后由 昨天有雨 回复于 2018年12月11日 · 1984 次阅读

最近想使用 jmeter 做一下压力测试,但是发现好像配置的不太对所以到社区寻求下帮助.
项目在使用的时候 1 秒内 300 左右的并发服务器就挂掉了,但是我用 jmeter 只对登录接口做压力测试,同时跑 500 个线程然后一直循环,服务只是有点慢并没有挂掉,这是为什么?
设置了集合点 集合 500 个线程,超时时间设置为 5 毫秒
还有一个问题,我在服务器那台电脑上用 jdk 自带的 java VisualVm 查看 jmeter 运行的时候服务的监视,实时线程一直是 200 多,没有有达到 500,cpu 和 堆内存占用也都没有超过 50%
这是因为 jmeter 设置的不对还是其他的原因呢?

最佳回复

不知你的压测机配置如何呢,jmeter jvm 参数是怎么配置的呢,运行时是用的 GUI 还是 no gui 模式呢?我的经验 300tps 的服务,应该不太需要 500 的并发,当然这也不绝对,还是需要根据实际的处理性能来定,建议调小线程数来试试看

共收到 8 条回复 时间 点赞

300 个请求每秒服务器挂,500 个线程服务不挂,这两个数字本来就不能等同分析,300 个请求是实实在在建立起的连接数,500 个线程并不一定能产生大于 300 的 tps,多大 tps 跟压测服务的处理性能和被测服务的性能都有关系,你先看 tps 有多少吧

ThreeClick 回复

那 jdk 监控平台的线程数又怎么解释呢?明明用 jmeter 用了 500 个线程去跑,可是服务最多只有 200 多个实时线程

ThreeClick 回复

方便加下您的联系方式吗?

不知你的压测机配置如何呢,jmeter jvm 参数是怎么配置的呢,运行时是用的 GUI 还是 no gui 模式呢?我的经验 300tps 的服务,应该不太需要 500 的并发,当然这也不绝对,还是需要根据实际的处理性能来定,建议调小线程数来试试看

能问下你跑的 300 左右的场景是什么?另外就是你有没有用 jmeter 查看过登录的 tps 和响应时间,你用 500 个线程去跑,如果你的 tps 并不足以支撑你的这个并发的话,你跑再多的线程组都没有用吧,他实际的并发数应该是小于这个线程组数的。

仅楼主可见
jackyin 回复

300 的并发是线上真实环境,第一次用 jmeter 做压力测试,你们说的 tps 确实没有考虑到,还要多学习.另外找到了测不出来的问题,是因为线上挂掉的时候不是这个登录接口,而是其他的接口,那个接口对数据库的读写操作比较多,怪我一开始没和别人对接好工作,以后多多注意吧

昨天有雨 关闭了讨论 12月11日 09:09

补充下项目是部署在 win 上的,单机版 tomcat,测试和线上都是这样

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册