Apache 100% CPU 用于简单的 PHP API

Apache 100% CPU 用于简单的 PHP API

我有一个新的服务器,在具有 2 个 CPU 和 8GB 内存的 VM 上安装了 CentOS 6.4 64 位。

该服务器除了 apache 和 php 之外没有安装任何其他程序。该服务器托管一个简单的 Web API,用于将数据写入另一台服务器上的 RabbitMQ 队列。

我正在运行 10 个简单脚本实例,该脚本对该 Web 服务器执行 curl 调用,每个实例循环 100,000 次。

这导致 Web 服务器占用 100% 的 CPU 但只占用很少的内存 (500MB)。我尝试了 Apache 配置,甚至将其设置为 1000 个最大客户端,但结果相同。

Apache 即使只有少数客户端也能完成大量工作,这是否存在问题?

谢谢

答案1

您有 10 个线程从本地系统尽可能快地发出一百万个请求(没有网络延迟减慢它们到达服务器的速度)。我不确定这如何构成只有少数用户的工作负载?也许是服务器旁边的几个用户,他们的电脑上有繁重的工作F5

将要遇到某个资源的瓶颈 - 在本例中是 CPU,这仅仅是由于 PHP 代码的执行。无论页面多么简单,一旦完成一次渲染,就必须开始下一次渲染。

这本身不应该是一个性能问题;您应该关注诸如“在负载下每个页面渲染需要多长时间”或“单个请求是否比预期占用更多资源”之类的问题。这个测试实际上并没有给您任何提示。看一下ab- 它会向您展示在将服务器推到极限时您实际上获得了什么样的性能。

相关内容