Как я выжил на маленьком vds. Продолжение.




Продолжим. (Начало тут.)

Следующим этапом стало желание оградиться от всепожирающего апача. Эксперименты с легковесными веб-серверами оставим на потом. Ибо, правильно, — лениво. Да и потом, неужели могучий и универсальный Apache нельзя заточить под себя?
Про то, что нужно чистить ненужные модули я и не говорю. Но я просто и без затей полез в секцию Multi-Processing Modules. На freebsd это файл /usr/local/etc/apache22/extra/httpd-mpm.conf. Нужно проверить, чтобы соответствующая строка в httpd.conf была раскомментирована. Из многообразия prefork-worker-etc, как учили отцы, нужно выбрать нужное:

apachectl -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

Значит, правим prefork MPM. Описание параметров вовсе не секрет, есть даже на русском: http://compiling.ru/optimization/apache-prefork/.
В нашем случае StartServers делаем равным 1. Нечего жировать с самого старта. Запас свободных воркеров от 2 до 5:

MinSpareServers 2
MaxSpareServers 5

Дальше немного практического расчёта. Уже не помню точно сколько памяти занимал один воркер, ориентировался на размер процесса непосредственно после запуска апача.
Допустим, 5 процессов по 8-10 Мб, как раз впишется в условия системы.
Другими словами, жёстко ограничиваем MaxClients числом 5, и предлагаем другим http-запросам немного повисеть в очереди.
Немного позже был протюнингован параметр MaxRequestsPerChild до 10. Из соображений держать размер одного воркера в разумных пределах.
В совокупности с уменьшенным Timeout до 60, и

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

уменьшается время, выделяемое для обработки запросов одного клиента, позволяя веб-серверу обслужить очередь новых страждущих.
В итоге, с учётом замечательного mod_evasive, Apache прекрасно себе поживает, потребляя отведённые ему 50 Мб.
Вернее жил. Когда на все сайты vds ходили та же группа энтузиастов из 3-5 человек одновременно. В процессе оптимизации, на сервер было докуплено ещё 32 Мб оперативной памяти, для успокоения души. Но справедливости ради, стоит сказать что для той нагрузки (3-5 чел on-line) утилизация по памяти составляла порядка 60%, т.е. в 64 Мб я вписывался.

Конечным эффектом из всей этой оптимизации является стабильная работа сервера при разумных нагрузках. Во всяком случае, нет необходимости держать руку на пульсе и постоянно перезапускать mysql.
Некоторое время назад было зафиксировано более 250 уникальных обращений к сайтам сервера. Цифра конечно не Бог весть какая, но маленький vds с честью справился с нагрузкой. Размеры воркера httpd конечно выросли — в среднем до 17 Мб. Что с текущими настройками даёт около 80Мб резидентной памяти. А ещё MySQL, ещё Bind, и совсем немного под ОС. И ничего — прекрасно всё уживается. (На 96 Мб  оперативы)
В следующий раз расскажу как поднимал DNS сервер на бесплатном общедоступном ns-сервере.

Popularity: 2%



Этот материал находится на сайте http://compiling.ru
__________________________________________



Похожие посты:


  • Лимит CPU и RAM в Apache
  • Настройка Apache prefork в httpd.conf
  • Оптимизация производительности Apache
  • Resource Capping Daemon, Monitoring & Commands.
  • Resource Capping Daemon, Overview



  • Опубликовано 08 Июл 2009 в 16:44. В рубриках: Optimization. Вы можете следить за ответами к этой записи через RSS 2.0. Вы можете оставить отзыв или трекбек со своего сайта.

    Оставьте свой отзыв

    Партнёры:


    www.vpnssl.ru

    Создание vpn подключения - от 1'950р.

    Есть вопрос! Оставь свой голос!

    Question:

    Что нужно админу для счастья?

    View Results

    Loading ... Loading ...




    Most Popular Posts



    Supported:

  • Ваша контекстная реклама предназначена лишь для тех посетителей интернет.


  • free counters