2016-04-25 130 views
1

我是新的JMeter和。我跟着this教程学习JMeter。为什么我的网站超时运行JMeter负载测试

我试着做以下条件下测试的负载。

Number of Threads (Users) - 1000 

Ramp-Up Period (in seconds) - 10 

Loop Count - 5 

当我运行测试,我试图加载我的网站(清除缓存后),但是,它需要比平常更多的时间来加载页面。浏览器缓存数据时不会发生此问题。

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

任何类型的解释将不胜感激。

回答

2

如果您尝试加载您的网站(清除缓存后),则运行您的JMeter测试时,它将总是需要比平时更多的时间加载。这是因为您已清除缓存,现在浏览器需要呈现页面资源再次加载您想要的页面。加载完成后,如果尝试再次加载页面而不清除缓存,则此次加载页面所需的时间会更少。浏览器不会每次都获取页面资源,而是浏览器将其保存在其缓存中。因此,下次尝试打开或加载该页面时,浏览器可以使用这些缓存在最短的时间内为您打开该页面。因此,当浏览器第一次加载页面时,需要比稍后加载该特定页面更多的时间(而不清除缓存)。另一点是,由于您的Jmeter测试在您尝试加载您的网站时运行,加载您的网站需要较长的时间。因为您的应用程序已经处理了JMeter发送的一些请求。所以处理额外的负载将会影响您的网站页面响应时间。

1000个用户的加速时间10秒!!!

这不是最佳实践。您必须提供足够的时间来预热那些1000个用户10秒太小是斜坡上升时间为用户。所以在JMeter测试期间,显而易见的是,你的浏览器将需要一个意想不到的时间来加载网页(使用浏览器)或结束通知“连接超时”。这并不意味着您的应用程序崩溃。这仅仅是因为JMeter中不切实际的测试脚本设计。

1

你能否阐述一下您正在使用e.g Web服务器软件的类型? - Apache HTTPD 2.4/Nginx/Apache Tomcat/IIS

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

如果你的Web服务器的机器不被你的CPU,磁盘等。(检查任务管理器)的最大性能的限制你的表现可能会受到限制Apache的配置。

能否请您检查执行Apache日志文件相关的警示?

根据您的配置(+ httpd.conf中的任何文件“包含”从那里d)您可使用mpm_winnt工人,有工作线程的配置数量在默认情况下根据是64:

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

一旦这些都是从任何客户端(浏览器,你的负载测试等),都在忙着新的请求将不得不等待轮到自己。

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

+0

Apache和Windows –