当前位置: 首页 > 知识库问答 >
问题:

为什么我的网站在运行JMeter负载测试时超时

井兴怀
2023-03-14

我是新来的JMeter和。我遵循本教程学习JMeter。

我试图在以下条件下进行负载测试。

 Number of Threads (Users) - 1000

 Ramp-Up Period (in seconds) - 10

 Loop Count - 5

当我运行测试时,我尝试加载我的网站(在清除缓存后),但加载页面所需的时间比平时多。当浏览器缓存了数据时,不会出现此问题。

有人能告诉我为什么会发生这种情况吗?是因为当1000个用户加载我的网站时,它可能会崩溃还是什么?

任何形式的解释都将不胜感激。

共有2个答案

单修德
2023-03-14

你能详细说明一下你正在使用的网络服务器软件的类型吗Apache HTTPD 2.4/Nginx/Apache Tomcat/IIS

底层操作系统呢?- 视窗 (服务器?) / 苹果 OS X / Linux

如果你的网络服务器不受你的CPU、磁盘等最大性能的限制。(检查任务管理器)您的性能可能会受到Apache配置的限制。

请检查Apache HTTPD日志文件中的相关警告,好吗?

根据您的配置(httpd.conf任何文件"包含"d从那里),你可能会使用mpm_winnt工作者,它有一个可配置的工作线程的数量,默认情况下是64根据:

https://httpd.apache.org/docs/2.4/mod/mpm_common.html#threadsperchild

一旦这些都是来自任何客户端(您的浏览器、您的负载测试等)的繁忙的新请求。)将不得不等待轮到他们。

尝试看看如果增加线程数会发生什么!

贾俊喆
2023-03-14

在运行JMeter测试时,如果你试图加载你的网站(在清空缓存后),加载时间总是比平时长。这是因为您已经清空了缓存,现在浏览器需要再次呈现页面资源来加载您想要的页面。加载完成后,如果您尝试在不清除缓存的情况下再次加载页面,这一次加载页面将花费更少的时间。浏览器不会每次都获取页面资源,而是将它保存在缓存中。因此,下次当您试图打开或加载该页面时,浏览器可以使用这些缓存在最短的时间内为您打开该页面。因此,当浏览器第一次加载一个页面时,它比以后加载特定的页面(不清除缓存)花费更多的时间。

另一点是,当你试图加载你的网站时,你的Jmeter测试正在运行,这将花费更长的时间来加载你的网站。因为您的应用程序已经在处理JMeter发送的一些请求。所以处理额外的负载会影响你的网站页面响应时间。

1000个用户的提升时间为10秒!!!

这不是最佳做法。你得给那1000个用户足够的时间热身。10秒对于1000个用户来说太短了。所以在JMeter测试期间,很明显你的浏览器会花费意想不到的时间来加载你的网页(使用浏览器)或者最终通知“连接超时”。这不一定意味着您的应用程序崩溃了。仅仅是因为JMeter中不切实际的测试脚本设计。

 类似资料:
  • 我正在监控在GUI模式下运行时从jmeter机器连接的连接时间和延迟,这在可接受的范围内。 我们是否应该严格遵循非 GUI 模式,即使我能够使用 GUI 模式执行负载测试? 我的目标是250 TPS,并且能够实现这一目标。我增加了内存,监控CPU和负载生成器的内存低于60%。 我应该选择非GUI模式吗?

  • 我正在使用JMeter对一堆API(例如用户服务、播放器服务等)进行负载测试(基线、容量、寿命)。这些服务中的每一个都有几个endpoint(例如创建、更新、删除等)。我正在尝试找出一种在JMeter中组织我的测试计划的好方法,以便我可以加载测试所有这些服务。 1)为每个API创建一个单独的JMeter测试计划(jmx),而不是创建一个JMeter测试计划并添加线程组,如“用户服务线程组”、“播放

  • 如何在jmeter(负载测试)中模拟多个会话(用户)在网站上长时间停留(例如超过15分钟)并发出多个请求

  • 问题内容: 发生了最奇怪的事情,我的测试运行正常,但现在不再,我完全没有更改代码,这里是一个例外: 问题答案: 我看到您正在使用Eclipse,但您是否还在使用其他外部构建/测试工具,例如Ant或Maven?有时,在同时使用其他外部工具时,Eclipse可能会不同步。 如果使用外部工具,请执行清理生成的工件所需的所有操作(例如mvn clean)。然后刷新Eclipse项目并按照前面的建议进行干净

  • 我们目前对应用程序的负载测试是使用jMeter完成的,到目前为止运行良好。我们有三个不同的线程组,可以通过命令行标志分别启用和配置。还可以从命令行配置线程数和目标吞吐量。 我正在寻找的是为每个线程组编程负载场景的可能性。通常jMeter启动所有线程,然后尝试达到其目标吞吐量速率。我想要实现的如下:我配置目标吞吐量速率为每秒500个请求,启动速率为20,增量为20,持续时间为5分钟。jMeter应该

  • 我制作了一些PHP脚本,我想测试JMeter中同时用户的响应时间。此脚本在很短的时间(50毫秒)内运行。 我想做的是模拟1到50个用户的负载测试,其中每个用户(线程)无限期地重复请求。首先我们将有一个用户,在两个同时的用户之后,在3个之后。。。等等 我正在尝试这样做,但我有一个响应时间,显然没有同时的请求。 使用HP loaddrunner,我们可以为每个线程定义迭代次数,这在JMeter中是否可