Server reached MaxClients setting

L
На сайте с 18.04.2009
Offline
39
1310

Почитал эту тему /ru/forum/634388 и

возник вопрос - так надо уменьшать MaxClients или увеличивать, как рекомендует апач?

У меня VPS (256mb, nginx нет) , сегодня внезапно народ повалил, из 300 уников в сутки, стало 15 уников в минуту (по LiveInternet-у), а это 20к уников в сутки :)

Когда у меня было MaxClients в 150, сервер умер за час и помогла только перезагрузка, уменьшил до 50, живёт уже 5 часов (тьфу-тьфу-тьфу) . top на apache2 показывает в res примерно 8900 (это килобайт? почти 10 мб?), но virt 182m.

Интересует как живет апач. Вот приходят 30 пользователей, он помещает их в память для выдачи ответа, почему апач не может другие 2000 поставить в очередь? и дать потом только тамйаут или 500 когда истечет тамаут?

 apache2 -l

Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c

Server version: Apache/2.2.16 (Debian)

Server built: Apr 1 2012 07:14:38
Server's Module Magic Number: 20051115:24
Server loaded: APR 1.4.2, APR-Util 1.3.9
Compiled using: APR 1.4.2, 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/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
M
На сайте с 16.09.2009
Offline
278
#1
legi:
У меня VPS (256mb, nginx нет)

Вот и начать с того, чтобы перед апачем nginx *был*. А MaxClients - да, уменьшить. На 150 апачей у вас памяти нету.

legi:
Интересует как живет апач. Вот приходят 30 пользователей, он помещает их в память для выдачи ответа, почему апач не может другие 2000 поставить в очередь? и дать потом только тамйаут или 500 когда истечет тамаут?

Если "интересует", то вот, пожалуйста:

http://httpd.apache.org/docs/2.2/mod/prefork.html

Не стесняйтесь и читайте как оно на самом деле работает. А детских идей с какими-то "пользователями в памяти" - старайтесь на публике не выдавать.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
S
На сайте с 20.07.2010
Offline
30
#2

1) Еще вопрос - в каком режиме у вас работает php? (лучше, чтобы он у вас работал в режиме fastcgi. Для этого есть одноименный модуль для php)

2) Поставить nginx перед apache это очень здравое решение.

3) Для ускорения отдачи можно поставить модуль eaccelerator для php.

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

---

host-low-cost.com - уютный дом для вашего сайта.

Андрей
На сайте с 30.09.2009
Offline
482
#3

3. Xcache быстрее работает.

EuroHoster.org ( https://eurohoster.org/ru/ ) - территория быстрых серверов. Выделенные серверы, VPS, SSL, домены и VPN.
L
На сайте с 18.04.2009
Offline
39
#4

Спасибо за советы. Да, я понимаю, что нужен nginx + акселератор, просто мне нужно было что-то сделать "прям сейчас". Вот я понизил количество в MaxClients, мне просто интересно стало, что это дало Апачу. В топике, на который я ссылался в первой записи, там написали, если придёт количество больше, чем МакКлиенст, то остальное уходит в своп. Своп - это ведь виртуальная память, а на винде ведь благодаря свопу, фотошоп мог открывать гигабайтные файлы с 512 ram на борту :)

Андрей
На сайте с 30.09.2009
Offline
482
#5

Уход в своп это обработка запроса на диске а не в памяти, а это минус по скорости, рост cpu и wait

L
На сайте с 18.04.2009
Offline
39
#6
WapGraf:
Уход в своп это обработка запроса на диске а не в памяти, а это минус по скорости, рост cpu и wait

хорошо. вот по default-у таймаут стоит 300 секунд. почему сервер постепенно захлебывается и вешает весь сервер, что мешает ему потом вытащить из свопа запросы которые в таймауте, у меня и у предыдущего топик-стартера?

Андрей
На сайте с 30.09.2009
Offline
482
#7

1. и самое главное - настройки сервера не заканчиваются на maxclient

2. прочтите почтите 3 и 4 данного топика

3. а на вопрос "почему" вам ответили в посте #2

M
На сайте с 16.09.2009
Offline
278
#8
legi:
почему сервер постепенно захлебывается и вешает весь сервер

Потому что его владелец пожадничал на администрировании, а сам учиться не в состоянии - что видно по повторяющимся однотипным вопросам. Так доступно?

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