После есть некоторые проблемы Я перестроил свой сервер на новую, чистую платформу Fedora 24. Это довольно загруженный сервер, и теперь, когда он запускается, я получаю поток этих сообщений в error_log apache:
[Thu Dec 08 19:30:26.954314 2016] [mpm_prefork:error] [pid 379] (11)Resource temporarily unavailable: AH00159: fork: Unable to fork new process
[Thu Dec 08 19:30:36.957269 2016] [mpm_prefork:error] [pid 379] (11)Resource temporarily unavailable: AH00159: fork: Unable to fork new process
[Thu Dec 08 19:30:46.963876 2016] [mpm_prefork:error] [pid 379] (11)Resource temporarily unavailable: AH00159: fork: Unable to fork new process
[Thu Dec 08 19:30:56.967167 2016] [mpm_prefork:error] [pid 379] (11)Resource temporarily unavailable: AH00159: fork: Unable to fork new process
[Thu Dec 08 19:31:06.974127 2016] [mpm_prefork:error] [pid 379] (11)Resource temporarily unavailable: AH00159: fork: Unable to fork new process
Я пробовал настраивать и настраивать, но, похоже, ничего не решило проблему. Я использую ту же машину, которая отлично работала под Fedora 23, поэтому я знаю, что она справится с нагрузкой.
Вот мой статус сервера apache:
Apache Server Status for example.com (via x.x.x.x)
Server Version: Apache/2.4.23 (Fedora) OpenSSL/1.0.2j-fips PHP/5.6.28
Server MPM: prefork
Server Built: Jul 18 2016 15:38:14
Current Time: Thursday, 08-Dec-2016 19:38:57 UTC
Restart Time: Thursday, 08-Dec-2016 19:29:02 UTC
Parent Server Config. Generation: 1
Parent Server MPM Generation: 0
Server uptime: 9 minutes 55 seconds
Server load: 2.86 2.38 1.48
Total accesses: 13045 - Total Traffic: 112.5 MB
CPU Usage: u485.32 s25.57 cu.05 cs.03 - 85.9% CPU load
21.9 requests/sec - 193.6 kB/second - 8.8 kB/request
165 requests currently being processed, 0 idle workers
KKKKWKKKKKKKKKKKKKKWKKKKKWKKKKKWWKKKKKKKKKKWKKKWKKKWKKKKKKKWWKKW
WKKKKKKKKKKWKKKKKKWKKKWKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKWKKK
KKKKKKKWWKKKKWKKKKKKKKWKKKKKKKKKKKWKW...........................
................................................................
................................................................
................................................................
... и это продолжается оттуда. Открытых слотов много, но что-то на сервере препятствует запуску новых процессов и обработке нагрузки. Однако мои пределы установлены высокими - возможно, слишком высокими!
# ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 1546671
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 102400
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1546671
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Для полноты, вот мои настройки limits.conf:
* soft core unlimited
* soft nofile 102400
* hard nofile 152400
* soft sigpending 1546671
* hard sigpending 2046671
* soft stack 10240
* hard stack 14240
* soft nproc 1546671
* hard nproc 2046671
И вот мои настройки apache mpm-worker - опять же, вероятно, слишком высокие, но со всеми этими настройками ниже (или по умолчанию) проблема также существует, часто намного быстрее.
ServerLimit 8192
StartServers 40
MinSpareServers 25
MaxSpareServers 100
MaxClients 8192
MaxRequestsPerChild 10000
Очевидно, что-то все еще ограничивает запуск новых процессов, но я не понимаю, где искать дальше.
Любые советы, как всегда, приветствуются!
Спасибо Майк
Предварительное решение - добавить в httpd.conf следующее:
EnableMMAP Off
Это отключает отображение памяти, что, по всей видимости, оказало очень негативное влияние на сервер.
Подробнее см .: http://httpd.apache.org/docs/2.4/mod/core.html#enablemmap
Если это окажется не решение, я сообщу людям здесь.
У нас была аналогичная проблема. Кажется, что systemd
был ответственен за наши ограничения.
https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html#TasksMax=N