我们使用的创建属测试我们的Php上运行的应用程序Apache2万维网服务器。我可以载入了创建属于使用25个或50个线程和服务器的负荷没有增加,但是响应时间从服务器。更多线程的缓慢反应时间。这似乎是创建属或Apache是排队的请求。我已经改变了maxclients值在apache网络服务器的配置文件,但这并不能改变的问题。同时创建属于运行,我可以使用的应用程序,并获得受人尊敬的响应时间。为什么?我希望能够收税我的服务器下降到0%闲置的数量增加的螺纹。任何人都可以帮点我在正确的方向?

更新:我发现如果我去除届会议从我的应用程序,我能够模拟一个全负荷的服务器。我曾试图重新启用的会议和使用HTTP Cookies经理的每一个线程,但它似乎不会产生影响。

有帮助吗?

解决方案

你需要找出的瓶颈是存在的,然后试图进行补救的问题。

  • 在创建属客户应该是上运行的一个好equipted机。我喜欢一个Solaris/Unix服务器运行JVM,但是对于 <200线,一个现代化的windows的机器会做的只是罚款。创建属可以成为一个瓶颈,并且你将不会获得任何有意义的结果,一旦它不会。此外,它应该运行一个单独的机器为什么你的测试,并且最好在同一网络上。WAN延迟可能成为一个问题,如果你的测试钻机和服务器都远远分开。
  • 第二件事是检查你的Apache工人。Apache有一个模块-mod_status-它会告诉你该国的每个工作人员。它可能有你的游泳池的大小设得太低。从mod_status,你将能够看到许多工人在使用。至少,Apache不会有任何工作者处理的请求,并请求将排队。太多了,阿帕奇可能排上的存储器的框它的运行。
  • 接下来,你应该检查你的数据库。如果它是在一个单独的计算机,数据库可以有一个IO或CPU短缺。
  • 如果你击中的一个瓶颈,并将服务器和数据库都是在同一台机器,则一般打CPU,RAM,或IO限制。我列出那些在为他们是最容易识别。如果你得到一个CPU定的应用程序,可以很容易地看到你占用去到100%。如果你跑出来的RAM,你的机器将开始交换。在这两个窗口和unix这是相当容易看到你的免费提供的RAM。最后,你可以IO的约束。这也可以监测使用各种工具或统计数据,但它并不显而易见的,因为CPU。

最后,具体地说你的问题,一件事,突出的是它可能有一个巨大的数量会议文件存储在一个单一目录。经常PHP商店会议中的信息文件。如果这个目录中得到很大,它将采取越来越长的时间PHP找到本届会议。如果你跑了你的测试将饼干关闭,PHP程序可能已经创造了成千上万的会议文件的每个用户的要求。Windows服务器上,这会减慢速度比上一个unix服务器做到差异的方式的目录都是保存在两个操作系统。

其他提示

您是否正在使用恒定的吞吐时间?如果Jmeter无法使用分配给它的线程为吞吐量服务,您将在响应时间内看到此排队和井喷。要弄清楚这是否是问题,请尝试添加更多线程。

我还发现了脚本中有JavaScript调用时发生的报告。在这种情况下,尝试将JavaScript调用移至脚本顶部的测试计划元素,或寻找预测值的方法。

尝试检查Apache提供的静态文件,而不是PHP,以查看问题是否在Apache Config或PHP配置中。

还要检查您的网络连接和配置。我们的Jmeter测试进展顺利,直到撞墙为止。最终意识到我们只有100MB的连接,并且已经饱和,将其修复了。您的网卡或交换机可能以比您想象的要低的速度运行,尤其是当它们的速度设置为“自动”时。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top