admin@demi4.com

sutra tds + apach2-worker + fcgid

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 голос
Позначки:,

Leave a Reply

Увійти через: 

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Related Post

upstream timed out (110: Connection timed out) while reading response header from upstream

upstream timed out (110: Connection timed out)upstream timed out (110: Connection timed out)

upstream timed out (110: Connection timed out)  – можно получить такое сообщение с ошибкой 500 в случае долгого выполнения скрипта. В таком случае nginx передал запрос на upstream (apache, php)

ifconfig

15 полезных “ifconfig” команд для настройки сетевых интерфесов в Linux15 полезных “ifconfig” команд для настройки сетевых интерфесов в Linux

“ifconfig” сокращенное от “interface configuration” (настройка интерфейсов) утилита для системных / сетевых администраторов в Unix/Linux операционных систем для конфигурации, управления и запросов параметров сетевых интерфейсов из командной строки или из

Query (7f0ae0004ba0): is an invalid pointer

Query (7f0ae0004ba0): is an invalid pointerQuery (7f0ae0004ba0): is an invalid pointer

Ни с того ни с сего свалился mysql, причем очень весело свалился, вываливает кучу ошибок в таблицах, после этого уходит в перезагрузку, следом опять кучу ошибок и опять в перезагрузку