有什么方法可以测试网站在负载下的性能如何


9

我已经制作了一个Asp.net MVC网站,并将其托管在共享的托管服务提供商上。由于我的网站包含一个非常笼统的想法,因此将来某个时候它可能会有大量并发用户。

因此,我正在考虑一种测试网站加载性能的方法。就像当100或1000个用户同时在线并浏览网站时,网站的效果如何。这也将使我理解我的LINQ查询是否写得很好。

Answers:


12

首先,适当的术语是压力测试。有很多用于网站压力测试的解决方案,我推荐的一种托管解决方案是loadimpact。他们的工作是用来自世界各地各种服务器的请求轰炸您的站点,并为您提供有关站点如何处理压力的分析报告。他们有一个免费测试,您可以在这里获得一般想法,但更多则需要支付订阅费。

这些测试仅从访问者的角度测试网站,有关更具体的信息,您应该在本地对应用程序进行概要分析,并且我的确没有其他要添加的内容,因此我也在使用Apache JMeter

最后,作为任何注重性能的Web开发人员,您都应该看看YSlow

YSlow通过检查页面上的所有组件来分析网页性能,包括使用JavaScript动态创建的组件。它衡量页面的性能并提供改进建议。

Firefox的YSlow已集成到Firefox的Firebug Web开发工具中。

我经常发现Javascript是实际的瓶颈,而不是后端代码或数据库。当然,写得不好的查询可能会严重影响性能,但是在处理了这些问题之后,请始终运行YSlow并遵循其建议,这样可以节省生命。

进一步阅读:

当然,在StackOverflow上!


当然,在支付loadimpact的订阅费用之前,请先探索其他解决方案。有很多类似的解决方案。我喜欢它,但是工作不是我
付的

我将使用免费测试。...暂时不进行严格测试,因为暂时没有任何意义....只是想知道这个主意:-)
Pankaj Upadhyay

7

您正在共享主机上,因此不可能保证能够正确运行以指示性能的任何测试,因为不能保证您的应用程序可以随时访问的资源级别。

但是,在这种情况下,我要做的是从在专用盒子上独立运行测试开始(这可以是您自己的笔记本电脑);使用Visual Studio负载测试套件或JMeter之类的工具(我个人无法忍受),并构建一组代表应用程序中典型路径的测试(您应该能够通过使用获得有关典型路径的信息Google Analytics(分析)。如果无法使用,则可以使用您认为可能的方法,但是请记住,这不能提供准确的基准。然后进行加速测试,从1个用户开始,然后慢慢添加用户,直到达到您的估计峰值负载。那应该向您显示您的系统在整个系统中的运行情况(我个人想进一步确保它有一定的余量)。

您要做的最后一件事是在运行测试时运行诸如ANTS性能分析器的性能分析工具(请注意,这会增加一些开销)。这将使您能够识别长时间运行的查询和方法,并为您提供有关应用程序真正运行缓慢的位置的提示(提示:几乎永远不会真正位于您认为的位置)。

正如我首先说的,您将遇到的主要问题是您正在共享主机上,因此几乎不可能进行任何现实的生活环境仿真。但是,如果您的应用程序在与承诺资源相似的环境中具有足够的净空空间,则即使您超出了预期的环境极限,您也应该对代码可以保留在宿主中充满信心。


感谢您阐明共享托管测试和自己的服务器之间的区别。
Pankaj Upadhyay'1

3

您可以研究JMeterThe Grinder之的工具

到目前为止,我仅使用过JMeter,它是一个图形工具,可让您轻松地构建测试计划。您可以模拟具有多个线程的多个用户。您还可以通过将浏览器与JMeter代理链接并进行实际工作来记录网站的典型使用情况,因此您无需从头开始编写请求。如果我没记错的话,Grinder是基于脚本的,那么也很适合。


1

我也喜欢Loadimpact进行压力测试。我倾向于在我的网站上进行快速检查的一件事是Apache Bench。当我想进行一些最终测试时,我将寻求付费服务。

我的工作还投资于WebLoads,它非常昂贵,但允许我们内部测试所有站点。我不推荐它。


0

我不认为可以手动进行负载测试,因为它会消耗比预期更长的时间,并且将是一项繁琐的任务。您可能可以选择可以用于许多用户的Load Runner。


0

Autohotkey(AHK)脚本可以模拟人类用户。让它整天运行。

您可以让它在几个盒子上运行以模拟几个用户。令人高兴的是,测试样式完全在您的控制之下。您可以让1个AHK脚本向报告功能发送垃圾邮件,然后查看它是否影响其他功能的用户。

尽管我不熟悉AHK的线程处理功能,所以模拟成千上万的用户可能很困难。您可能会受到所拥有计算机数量的限制。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.