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

Why My web site time out while running JMeter load Test

我是 JMeter 的新手。我按照 this 教程学习了 JMeter。

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

 Number of Threads (Users) - 1000

 Ramp-Up Period (in seconds) - 10

 Loop Count - 5

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

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

如有任何解释,我们将不胜感激。

您能否详细说明您使用的网络服务器软件的类型,例如? - Apache HTTPD 2.4 / Nginx / Apache Tomcat / IIS

以及底层操作系统? - Windows(服务器?) / Mac OS X / Linux

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

能否请您检查 Apache HTTPD 日志文件以获取相关警告?

根据您的配置(httpd.conf + 任何文件 "Include"d 从那里)您可能正在使用 mpm_winnt worker,它具有可配置的工作线程数,默认情况下根据:

是 64

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

一旦来自任何客户端(您的浏览器、您的负载测试等)的所有新请求都处于繁忙状态,则必须等待轮到它们。

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

虽然 运行 你的 JMeter 测试如果你尝试加载你的网站(在清除缓存之后),加载总是比 usual.It 花费更多的时间,因为你已经清除了缓存并且现在浏览器需要重新渲染页面资源加载你想要的page.After加载完成,如果你尝试在不清除缓存的情况下再次加载页面,它会花费更少的时间加载页面 time.Browser 不会每次都获取页面资源,而是浏览器将其保存在其 cache.So 中,下次您尝试打开或加载该页面时,浏览器可以使用这些缓存来打开在最短的时间内为您提供该页面。因此,当浏览器第一次加载页面时,它比稍后加载该特定页面花费更多的时间(不清除缓存)。

另一点是,由于您的 Jmeter 测试是 运行 当您尝试加载您的网站时,加载您的 website.Because 需要更长的时间,您的应用程序已经在处理由JMeter.So 处理额外负载会影响您的网站页面响应时间。

Ramp up time 10sec for 1000 users!!!

这不是最佳做法。你必须给那些 1000 个用户 足够的时间来预热。 10 秒 太小,无法成为 1000 位用户加速时间。所以在 JMeter 测试期间在此期间,很明显您的浏览器将花费意外的时间来加载您的网页(使用浏览器)或最终通知 "Connection Timeout"。这不一定意味着您的应用程序坠毁了。只是因为JMeter的测试脚本设计不切实际