相同的场景、服务器配置,为何JMeter与LoadRunner测出的TPS相差巨大?
相同的场景、相同服务器配置、相同并发量的情况下,为什么LR测试出来的TPS与JMeter测试出来的TPS相差那么大?
1.LR 50并发(Run Vuser as a thread) TPS 约 40000
2.JMeter 50线程 TPS只能达到 3200左右 (负载生成机器资源消耗很低,排除负载机问题)
3.尝试去掉“图形结果”统计,TPS能提升至15000(提升近5倍)
这样是否可以断定为,jmeter在高负载情况下,自身的性能就存在问题 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
请问jmeter 15000的tps是单台的jmeter压测的吗?如果是单台,请问服务器配置时多大的呢?我的jemter单台配置64G/16C,测试简单的只有17k的html页面,单台的tps怎么也只能到3500了,不知道问题出在哪里,排除web服务器的问题,下面是针对jmeter做的优化,请多多指教,我们想达到20w的并发
按照网上的优化建议:
HEAP="-Xms31744m -Xmx31744m"
NEW="-XX:NewSize=10496m -XX:MaxNewSize=10496m"
并且也设置了内核的一些参数:
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 2048
压测客户端对压测结果有一定影响,一般部署多机发起压测,尽量降低影响。这是常常被很多测试新手忽略的东西。我以前也没有考虑到压测客户端的影响,后来和一个测试专家共事了一段时间后被教育和证明了,印象深刻啊。
之前测试过程中,也发现loadrunner与JMeter之间的结果没有可比性:loadrunner测试出来的服务器性能更好。
这可能与LoadRunenr与JMeter之间的加压原理不同有关系。
个人目前的结论是他们之间的结果只能进行纵向对比,横向对比是不现实的。
1、LR的场景设置和Jmeter是一样的吗?Jmeter是否1秒钟加到50个线程?LR也是一秒钟加到50个线程吗?
2、添加“图形结果”和“查看结果数”导致TPS下降的问题我没遇到过。不过官方网站最佳实践里说了lordtest的时候不要用这些元件。Don't use "View Results Tree" or "View Results in Table" listeners during the load test, use them only during scripting phase to debug your scripts.