Ubuntu 中的并发连接和 Prefork MPM 模块

Ubuntu 中的并发连接和 Prefork MPM 模块

我正在测试我的服务器以了解它支持多少个并发连接。我按以下方式配置 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 服务器填充日志之前收到一些提示;否则请尝试使用调试(之后不要忘记切换回警告或错误 ;-) )

相关内容