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