Apache Max Connections



我们使用Ubuntu 16 LTS作为具有apache2.4,18GB RAM和20 CPU的网络服务器。我发出了以下命令

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 72012
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 72012
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

阿帕奇版本

$ apache2 -v
Server version: Apache/2.4.18 (Ubuntu)
Server built: 2018-04-18T14:53:04

当前使用的阿帕奇模块

$ a2query -M
prefork

MPM 预分叉模块与默认设置一起使用

<IfModule mpm_prefork_module>
StartServers             2
MinSpareServers          5
MaxSpareServers          10
MaxRequestWorkers        400
MaxConnectionsPerChild   0
</IfModule>

我已经通过JMeter压力测试器检查了最大apache进程数,它不会扩展超过1500个进程。还要检查当达到 1500 个进程时,RAM 仍然有足够的空间(即仍然剩下 9GB(。

进程计数由以下命令标识

ps -ef | grep apache2 | wc -l

需要指导来增加 1500 个数字,因为我们需要坚持使用MPM_prefork模块。

尝试更改配置中的ServerLimit,请参阅此处。

您还可以考虑查看 apache2buddy 以获取有关调整配置的指导。

旁注

请注意,硬限制为 15000。

摘自 Apache 的文档

这里 将 ThreadLimit

20000(或 ThreadLimit 100000 与事件,ThreadLimit 15000 与 mpm_winnt(编译到服务器中的硬限制。这是为了避免错别字造成的恶劣影响。若要将其进一步增加到超过此限制,需要修改 mpm 源文件中 MAX_THREAD_LIMIT 的值并重建服务器。

相关内容

  • 没有找到相关文章

最新更新