sutra tds + apach2-worker + fcgid

Кто не знает что такое «sutra» и для чего она нужна — прямиком в гугл. А если это «лишнее» то можно просто почитать заметку о том как все таки мой любимый apache/2.2 подтвердил свой статус. Помнится в былые времена мне один человек на собеседовании доказывал о том что apache2 это хлам и древность, а вот nginx рулит. Ну может кому то и рулит, а для меня консерватора не рулит пока не увижу задач когда индеец подведет.

Все просто — сервак с ТДС системой и тут пятничным вечером под выходные привалило трафа не много ни мало примерно стало 5 лямов в сутки (обращений), как я уже обьяснял своему клиенту — ТДС системе пофигу сколько у тебя уников, а сколько не уников — важно «обращения» к серваку, вот их было примерно 2 миллионов в сутки, а резко стало 5 миллионов. В результате чего основной сервак лег и траф пошел на «запасной», который то же не выдержал и начал «спотыкаться» и сыпать ошибку «mod_fcgid: can’t apply process slot for /home/sutra/public_html/in.cgi»  что вызывало ошибку «HTTP 503» так как был вечер да еще и пятницы — мозг напрочь отказался работать и самое простое что пришло в голову — врубил для домена «round robin dns» и все «ожило». Далее начал разбираться, сначала была мыслишка что кто то по умному ддосит, но потом откинул эту мысль, так как два сервака тянули. Копание дальше дало инфу о том что как раз накануне падения подключили нового клиента к ТДС а там тарфа много (обращений к сайту), а у меня по старинке апач в префорке, и лимит на 1024 подключения и апач уперся в «server reached MaxClients setting»  в результате чего проверяльщик переключился на запасной сервак.

Дальнейшее копание было направлено на убираение ошибки «mod_fcgid: can’t apply process slot for /home/sutra/public_html/in.cgi» так как собственно на запасном сервере крутился apache2-worker и по моим прикидкам не должен был тупить. Из настроек в апаче было прописано лимиты по подключениям:

Но основная проблема была в другом — в модуле fcgi, ему не хватало «слотов», гугление не дало внятного ответа чего же делать кроме того как увеличивать параметры:

FcgidMaxProcesses

FcgidMaxProcessesPerClass

Но проблема вылела потом, этими параметрами можно играться в большую сторону если у тебя апач в префорке а если в воркере — то не надо ему давать «много» — как это было у меня.

В итоге эксперементально — тестовым методом обнаружилось что для apache2-worker параметры

FcgidMaxProcesses

FcgidMaxProcessesPerClass

Должны быть равны и их значение не должно превышать кол-во ядер процессора. В моем случае я выставил:

 

После чего передернул апач, отрубил «round robin dns» для ТДС системы и стал ждать, когда траф «перетек» на перенастроенный сервак — сервер жил, не падал. Трафа много, лог растет безумно быстро, парсил на наличие «HTTP 503» — все отлично — ошибок нет. На момент написания статьи судя по access_log apache2 — у меня траф прет примерно 77 запросов в секунду, при этом ошибок нет, LA = 1 и меньше. Я доволен.

Железо под такой траф простое:

RAM: 32Gb

CPU: AMD Opteron 3365

HDD: 2x1Tb SATA3 TOSHIBA

1 голос

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*
Website