gpt4 book ai didi

php - jmeter多用户问题

转载 作者:行者123 更新时间:2023-12-02 01:22:29 25 4
gpt4 key购买 nike

我们正在使用 Jmeter 来测试在 Apache 2 Web 服务器上运行的 Php 应用程序。我可以加载 Jmeter 以使用 25 或 50 个线程,并且服务器上的负载不会增加,但服务器的响应时间会增加。线程越多,响应时间越慢。 Jmeter 或 Apache 似乎正在对请求进行排队。我已经更改了 apache Web 服务器配置文件中的 maxclients 值,但这并没有改变问题。当 Jmeter 运行时,我可以使用该应用程序并获得可观的响应时间。是什么赋予了?我希望能够通过增加线程数将我的服务器空闲率降低到 0%。谁能帮我指出正确的方向?

更新:我发现如果我从应用程序中删除 session ,我就能够模拟服务器上的完整负载。我尝试重新启用 session 并为每个线程使用 HTTP Cookie 管理器,但它似乎没有产生影响。

最佳答案

您需要确定瓶颈发生的位置,然后尝试修复问题。

  • JMeter 客户端应在设备齐全的计算机上运行。我更喜欢运行 JVM 的 Solaris/Unix 服务器,但对于 <200 个线程,现代 Windows 机器就可以了。 JMeter 可能成为瓶颈,一旦成为瓶颈,您将无法获得任何有意义的结果。此外,它应该在与您的测试不同的机器上运行,并且最好在同一网络上运行。如果您的测试设备和服务器相距较远,WAN 延迟可能会成为一个问题。
  • 第二件事要检查的是您的 Apache 工作人员。 Apache 有一个模块 - mod_status - 它将向您显示每个工作人员的状态。您的池大小可能设置得太低。从 mod_status 中,您将能够看到正在使用的工作人员数量。少数情况下,Apache 不会有任何工作进程来处理请求,并且请求将排队。太多,Apache 可能会耗尽运行它的机器上的内存。
  • 接下来,您应该检查您的数据库。如果它位于单独的计算机上,则数据库可能会出现 IO 或 CPU 短缺。
  • 如果您遇到瓶颈,并且服务器和数据库位于同一台计算机上,那么您通常会遇到 CPU、RAM 或 IO 限制。我按照最容易识别的顺序列出了它们。如果您的应用程序受 CPU 限制,您可以轻松地看到 CPU 使用率达到 100%。如果你的内存不足,你的机器将开始交换。在 Windows 和 Unix 上,查看可用的空闲 RAM 相当容易。最后,您可能会受到 IO 限制。这也可以使用各种工具或统计数据进行监控,但不像 CPU 那样明显。

最后,针对您的问题,值得注意的一件事是可以将大量 session 文件存储在单个目录中。 PHP 通常将 session 信息存储在文件中。如果该目录变大,PHP 查找 session 所需的时间就会越来越长。如果您运行测试时将 cookie 关闭,则 PHP 应用程序可能会为每个用户请求创建数千个 session 文件。在 Windows 服务器上,速度会比在 UNIX 服务器上更快,这是由于两个操作系统上目录存储方式的差异造成的。

关于php - jmeter多用户问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2028157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com