我正在测试我的服务器以了解它支持多少个并发连接。我按以下方式配置 mpm_prefork.conf:
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 100000
MaxConnectionsPerChild 0
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
但是当我的服务器接收到~8200 个并发连接时,会触发错误并且 apache 不再响应:
[notice] caught SIGTERM, shutting down
服务器有足够的内存,并且剩余
配置没问题吗?我需要更改什么吗?
谢谢
答案1
你的 apache 配置看上去不错。
由于连接太多,您可能会遇到系统资源问题:
- 你的 apache 运行时用户的 ulimts 是什么
cat /etc/security/limits.conf
- 如果有并发连接,系统可能会耗尽端口;请检查
sysctl net.ipv4.ip_local_port_range
在测试运行时在线监控您的系统活动;在服务器上打开控制台并vmstat 2
在测试之前启动并观察值。
您还可以在主 httpd.conf 中设置更高的日志级别LogLevel info
。也许您会在 Web 服务器填充日志之前收到一些提示;否则请尝试使用调试(之后不要忘记切换回警告或错误 ;-) )