Apache Max连接

时间:2018-10-01 08:10:07

标签: web-services apache2.4

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

$ 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

Apache版本

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

当前正在使用的Apache模块

$ a2query -M
prefork

和MPM prefork模块用于默认设置

<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模块。

1 个答案:

答案 0 :(得分:0)

尝试在您的配置中更改 ServerLimit ,请参见here

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

旁注

请注意,硬限制为15000。

摘录自Apache文档here

  

编译到服务器中的ThreadLimit 20000(或带事件的ThreadLimit 100000,带mpm_winnt的ThreadLimit 15000)有硬限制。这样做是为了避免错别字引起的令人讨厌的影响。要使其进一步超过此限制,您将需要修改mpm源文件中的MAX_THREAD_LIMIT值并重建服务器。