测试代码规模如何

时间:2009-09-05 04:41:32

标签: php scalability scaling

我目前正在研究一些Ajax繁重的代码,我想知道我的服务器将如何扩展,因为越来越多的用户(希望)开始使用我的网络应用程序。目前只在我的内部测试服务器上,我想知道如何模拟几百或几千个用户,以便我可以看到它如何处理更重的负载。它是用PHP / MySQL编写的,我真的不想找到数百台计算机来手动设置和测试:)提前感谢,任何建议或方向都非常感谢。

4 个答案:

答案 0 :(得分:11)

Apache Benchmark。它随Apache Web Server一起提供。有点像这样:对于使用10个并发线程的100个请求,请使用以下命令:

ab -n 100 -c 10 http://localhost/

将localhost网址替换为您的AJAX代码将要调用的网址。输出将为您提供有关如何处理请求的精彩报告。一些有趣的数字是:

Complete requests
Failed requests
Requests per second

答案 1 :(得分:0)

我所做的,这将给出一个非常粗略的想法,就是编写一个可以创建数十个或数百个线程的应用程序,并且每个用独立用户随机命中几十次。

所以,我有100个独特的测试用户,我会创建100个线程,然后随机地随机进行一些操作。

这将告诉您是否存在一些比例问题。

最终,你会遇到一个问题,因为你只有一个网络连接,所以这会限制速度,所以它并不完美。

您还可以使用junitperf来帮助解决此问题,然后您可以查看每项测试是否花费太长时间来回复。

最好的选择是进行这些测试,将它们放在尽可能多的机器上,并一次运行它们,让10台计算机假装成10或100人,比让一台计算机假装更有效成为这些人中的每一个。

您不希望将Web服务器和测试放在同一台计算机上,否则会严重影响结果,因为Web服务器只会获得一些cpu周期。

答案 2 :(得分:0)

鉴于此问题,我会记录用户会话。然后编写再现该组调用的客户端代码。

另一种选择是使用VMware。 (注意,我是一名员工)只需创建一堆虚拟机并使用每个虚拟机连接到您的站点。仍然意味着大量的手工工作,但至少你不需要那么多的机器来进行测试。

答案 3 :(得分:0)

我推荐LoadUI http://www.loadui.org/