我正在尝试对位于亚马逊负载均衡器后面的亚马逊 centos 实例进行负载测试。
该应用程序是用 php 编写的,并使用弹性缓存,媒体存储在 s3 存储桶中。
当服务器获得超过 1000 个并发请求时,它会开始提供“Apache 内部虚拟连接”,并且在外部尝试时页面不会加载,即使加载正常运行时间指标不超过 1。
这意味着有足够的 CPU 和 MEM 资源,我已将 apache prefork 配置为:
StartServers 32
MinSpareServers 20
MaxSpareServers 80
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
但是因为资源没有被使用所以这不会产生任何影响,所以我想我需要配置 apache 来处理 php 请求。
有谁遇到过类似的情况吗?
答案1
首先,将 ServerLimit 和 MaxClients 增加到 1000 以上。这将允许 1000 个并发连接。根据客户端使用服务器的方式,您还需要稍微增加 MaxSpareServers 和 MinSpareServers。
只是警告,随着运行的 apache 线程越来越多,您将开始消耗更多内存。内存可能会成为一个问题。