0

我在我的 CentOS 5.8 VPS 服务器(2GB RAM,2GHz 处理器)上运行 Apache2/PHP,并尝试进行基本负载测试。由于我使用的是 Apache 的标准安装,因此我假设使用的是 prefork 模型。这是配置:

<IfModule prefork.c>
StartServers      20
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

我用 ab 做了一个简短的测试:

ab -q -c 100 -n 10000 mysite.com

同时我正在检查 mysite.com/server-status 并且我从未见过当前正在处理的请求数量超过 10。这怎么可能?

根据我的计算,并发请求的数量应该超过 10,理想情况下是 100。我在这里遗漏了什么还是 Apache 2 服务器状态报告错误?

谢谢你们。

4

1 回答 1

0

你是对的,你可以看到超过 10 个请求。实际上,您可以处理更多 256 个并发请求。

但是,这里没有足够的信息来说明为什么您没有看到超过 10 个连接。以下是一些可能性:

  • 与被测主机的慢速连接可能会减少并行连接的数量。
  • 正在测试的 URL 后面的慢速应用程序可能会减少并行连接的数量
  • /client/ 中的限制可能会限制并行连接的数量。“ab”应该提供一些关于它能够达到的并发级别的报告。
  • 您可能会在 Apache 配置的其他地方不小心将“MaxClients”设置为较低的值
  • ...或者您可能有其他一些 Apache 配置问题。

要提供更具体的答案,您可以考虑发布“ab”输出和整个 Apache 配置的尽可能完整的副本。

于 2013-01-03T01:38:51.787 回答