Нужна помощь c настройкой с httpd

12
ffreest
На сайте с 22.08.2010
Offline
109
970

В общем с ростом посещаемость несколько раз в день в error_log появляется ошибка

[Mon Apr 02 21:23:01 2018] [error] server reached MaxClients setting, consider raising the MaxClients setting

соответственно я потихоньку поднимал MaxClients и ServerLimit довел до 32768, через 4 часа появилась ошибка, но при этом апатч не падает и продолжает дальше работать. Решил сегодня вечером поставить 65536, может больше ошибка вылазить не будет. Онлайн бывает доходит до 1000-1500 человек на сайте. Ngnix не предлагайте у меня и апатч спокойно справляется с нагрузкой.

Конфиг:

LimitRequestFieldSize 8192

KeepAlive On

MaxKeepAliveRequests 4096

KeepAliveTimeout 3

<IfModule prefork.c>

StartServers 16

MinSpareServers 8

MaxSpareServers 32

ServerLimit 65536

MaxClients 65536

MaxRequestsPerChild 32768

</IfModule>

Сервер очень мощный MEM 128 GB, CPU 2690 v2 * 2, HDD Samsung NVME SM951 * 2

Все летает проблем вообще ни каких, утечек памяти тоже нет

Команда httpd -V выдает:

Server version: Apache/2.# (Unix)

Server built: Oct 19 2017 16:43:38

Server's Module Magic Number:#

Server loaded: APR 1.3.9, APR-Util 1.3.9

Compiled using: APR 1.3.9, APR-Util 1.3.9

Architecture: 64-bit

Server MPM: Prefork

threaded: no

forked: yes (variable process count)

Server compiled with....

-D APACHE_MPM_DIR="server/mpm/prefork"

-D APR_HAS_SENDFILE

-D APR_HAS_MMAP

-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)

-D APR_USE_SYSVSEM_SERIALIZE

-D APR_USE_PTHREAD_SERIALIZE

-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

-D APR_HAS_OTHER_CHILD

-D AP_HAVE_RELIABLE_PIPED_LOGS

-D DYNAMIC_MODULE_LIMIT=128

-D HTTPD_ROOT="/etc/httpd"

-D SUEXEC_BIN="/usr/sbin/suexec"

-D DEFAULT_PIDLOG="run/httpd.pid"

-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"

-D DEFAULT_LOCKFILE="logs/accept.lock"

-D DEFAULT_ERRORLOG="logs/error_log"

-D AP_TYPES_CONFIG_FILE="conf/mime.types"

-D SERVER_CONFIG_FILE="conf/httpd.conf"

С # я немного подтер значение.

Может есть какое физическое ограничение, или просто не срабатывает MaxClients ?

Размести бесплатно объявление по продаже готового бизнеса по недвижимости твой адрес (https://tvoyadres.ru/nedvizhimost/biznesy/). Узнай реальную стоимость своей квартиры оценка квартиры онлайн (https://tvoyadres.ru/ocenka/kvartira/).
Оптимизайка
На сайте с 11.03.2012
Offline
396
#1

Нет смысла увеличивать maxclients, дефолтного значения вполне хватает, всё равно сервер больше не переварит, только тормозить будет. Причина у вас либо в ddos атаке, либо то, что под апачем (php) не справляется.

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
ffreest
На сайте с 22.08.2010
Offline
109
#2
Оптимизайка:
Нет смысла увеличивать maxclients, дефолтного значения вполне хватает, всё равно сервер больше не переварит, только тормозить будет. Причина у вас либо в ddos атаке, либо то, что под апачем (php) не справляется.

Два не тормозит он вообще. А досит Гугл и Яндекс они каждые сутки сканируют по 1 млн страниц судя по логам и статистике.

M
На сайте с 17.09.2016
Offline
124
#3

Вы бы посмотрели сколько один процесс апача жрёт RAM и умножили на Ваше число ServerLimit

Знатное превышение будет

прихлопнет OOM Вам mysql :) (если он есть конечно)

ffreest
На сайте с 22.08.2010
Offline
109
#4
Mobiaaa:
Вы бы посмотрели сколько один процесс апача жрёт RAM и умножили на Ваше число ServerLimit
Знатное превышение будет
прихлопнет OOM Вам mysql :) (если он есть конечно)

Команду не подскажете чтоб не в процентах увидеть, а в МБ

M
На сайте с 17.09.2016
Offline
124
#5

ffreest, RES колонка

Отображает в Кб потребление RAM

ffreest
На сайте с 22.08.2010
Offline
109
#6
Mobiaaa:
ffreest, RES колонка
Отображает в Кб потребление RAM

8200 тогда получается.

Как я понял чтоб проблемы не было надо, что-то делать с этим MaxRequestsPerChild 32768 сперва, а потом уже Maxclient трогать.

M
На сайте с 17.09.2016
Offline
124
#7

MaxRequestsPerChild актуален, когда у Вас что-то из модов течёт по памяти

MaxRequestsPerChild скажет апачу, через сколько запросов - перезапустить процесс

---------- Добавлено 03.04.2018 в 00:43 ----------

Хоть Вы и просили не предлагать nginx, но я бы не был столь категоричен

Возможно у Вас там статики куча, и ещё отдавать apache'м - крайне расточительно по ресурсам сервера

---------- Добавлено 03.04.2018 в 00:46 ----------

ffreest:
8200 тогда получается.

1000 процессов (а лимит у Вас вообще 65К) дадут уже 80 GB занятой RAM

ffreest
На сайте с 22.08.2010
Offline
109
#8

Странно конечно это, поидее конечно не должен ругаться на Maxclient, если бы еще сервак не справлялся или память заканчивалась, но нет все норме. Может реально поставить MaxRequestsPerChild 100 что это даст?

Я тут прочитал ,что нужно снять ограничение на HARD_SERVER_LIMIT 256

coolwebsearcher
На сайте с 29.09.2008
Offline
87
#9


apachectl configtest

варнингов/ошибок не выводит?

+ поставить munin, и графики рисовать для apache_*

особенно важен apache_processes и смотреть изменения во времени

busy/idle/free процессов апача.

ну и стоит server-status смотреть, чем апач занят, когда эта ошибка возникает.

Услуги (http://www.our-dns.info/) | Цены (http://www.our-dns.info/prices/) | Отзывы (/ru/forum/970789)
ffreest
На сайте с 22.08.2010
Offline
109
#10
coolwebsearcher:

apachectl configtest


варнингов/ошибок не выводит?

+ поставить munin, и графики рисовать для apache_*
особенно важен apache_processes и смотреть изменения во времени
busy/idle/free процессов апача.

ну и стоит server-status смотреть, чем апач занят, когда эта ошибка возникает.

apachectl configtest выводит

syntax ok

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий