LINUX.ORG.RU
ФорумAdmin

Нужна помощь крутых перцев по httpd

 


0

1

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

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

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

Конфиг:

LimitRequestFieldSize 8192 KeepAlive On MaxKeepAliveRequests 4096 KeepAliveTimeout 3

<IfModule prefork.c>

StartServers 16

MinSpareServers 8

MaxSpareServers 32

ServerLimit 1024

MaxClients 512

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 ?



Последнее исправление: papuas (всего исправлений: 3)

Так а в чем вопрос-то у Вас? Если, как Вы пишете, «Все летает проблем вообще ни каких, утечек памяти тоже нет», то в чем проблема? Сокращать параметр MaxClients, IMHO, имеет смысл только в одном случае - когда Вы упираетесь в возможности железа (чаще всего, в доступную RAM).

Сама ошибка не указывает на что-то криминальное - сервер просто информирует Вас, что возникла очередь запросов. Для клиентов это будет выглядеть как некоторое увеличение времени ответа от сервера.

Serge10 ★★★★★
()
Ответ на: комментарий от Serge10

Мне кажется Maxclients вообще не применяется, может кто знает как глянуть какие настройки использует апатч в реальном времени.

papuas
() автор топика
Ответ на: комментарий от papuas

http://адрес-твоего-сервера/server-info
http://адрес-твоего-сервера/server-status

Данные модули(info и status) должны включены и разрешены в конфиге, естественно

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
13 апреля 2019 г.

Ngnix не предлагайте у меня и апатч спокойно справляется с нагрузкой.

Ну раз справляется, зачем этот топик?

А так - предлагаю на nginx перейти или поставить его в качестве кеширующего прокси, чтобы он очень быстро отдавал статику и занимался хендшейком https + http/2, а апач пусть сзади ворочается и заодно избавится от пачки запросов к нему.

А если осилишь php-fpm - то станет сильно проще с maxChild

BaBL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.