微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JMeter-每个线程中的第一个样本都很慢,并且问题每隔约210秒重复一次

如何解决JMeter-每个线程中的第一个样本都很慢,并且问题每隔约210秒重复一次

我有一个简单的JMeter实验,其中有一个包含16个线程的线程组,运行500s,每个线程每2秒点击一次相同的URL,每秒生成8个请求。我正在非GUI(命令行)模式下运行。这是.jmx文件

https://www.dropbox.com/s/l66ksukyabovghk/TestPlan_025.jmx?dl=0

这是在AWS m5ad.2xlarge / 8核/ 32GB RAM上运行的结果图(在我的PC,超大型Hetzner服务器,Neocortix Cloud Services实例上的VirtualBox Debian上,我得到相同的行为):>

https://www.dropbox.com/s/gtp6oqy0xtuybty/aws.png?dl=0

线程组开始时,所有16个线程报告较长的响应时间(0.33s),然后逐渐恢复为正常的较短响应时间(

前两个帖子似乎相关,但是没有给出“开始运行”问题的最终原因,也没有提及“开始运行回声”问题。

Jmeter - The time taken by first iteration of http sampler is large

First HTTP Request taking a long time in JMeter

我可以通过在每个线程中用第一个HTTP请求打一个不存在的页面获取404错误并过滤掉404错误解决“运行开始”问题。但这是黑客,它不能解决“运行回声开始”问题,不能保证能打到不存在的页面。并且在实际目标页面的传递负载中引入了“漏洞”。

更新:根据Dmitri T的建议,我已经安装了JMeter 5.3。它具有认值httpclient4.time_to_live = 60000(60s),并且其输出与以下内容匹配:

https://www.dropbox.com/s/gfcqhlfq2h5asnz/hetzner_60.png?dl=0

但是,如果我增加httpclient4.time_to_live = 600000(600s)的值,​​它不会将所有“回声”推到运行结束之后。它仍然显示大约220s和440s的回声,即我试图消除的原始行为。

https://www.dropbox.com/s/if3q652iyiyu69b/hetzner_600.png?dl=0

我想知道httpclient4.time_to_live的有效最大值是否在220000(220s)左右。

谢谢, 劳埃德(Lloyd)

解决方法

由于initial connection establishmentSSL handshake

,第一个请求将很慢

展望未来,JMeter将特别按照其network properties采取行动:

  • httpclient4.time_to_live-TTL(以毫秒为单位)表示绝对值。无论如何,连接都不会超出其TTL的范围而重新使用。
  • httpclient.reset_state_on_thread_group_iteration-在开始新的线程组迭代时重置HTTP状态,这意味着关闭打开的连接并重置SSL状态

似乎您使用的是已过期5年的JMeter版本,according to JMeter Best Practices you should always be using the latest version of JMeter,所以请考虑升级到JMeter 5.3(或{{3}提供的最新稳定版本) }页),因为您可能正遭受JMeter错误的困扰,该错误已得到解决。

您可能还需要执行OS和JMeter调整,请参见JMeter Downloads以获取示例问题和解决方案

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。