ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[9]: `



On Thu, 11 Jan 2007, Igor Savchenko wrote:

Hello Andrew,

В случае, если у вас всё же десятки тысяч соединений с сервером, такая
конструкция врядли будет работать - потому что, как написано Игорем на
http://sysoev.ru/nginx/docs/http/ngx_http_perl_module.html#bugs :

Если perl'овый модуль выполняет длительную операцию, например, определяет
адрес по имени, соединяется с другим сервером, делает запрос к базе
данных, то на это время все остальные запросы данного рабочего процесса не
будут обрабатываться.

У меня на одном сервисе около пары сотен коннектов в секунду и при каждом
nginx делает кучу операций в базе данных, причем не на локалхосте.. и
это все работает очень стабильно вот уже четвертый месяц.. так, что
такие выводы весьма субъективные и зависят от многих факторов.

Вариант от Alexey Polyakov - X-Accel-Redirect + post_action -
мне кажется более жизнеспособным. Потому что общением с БД будет
заниматься другой процесс.

Реализовал идею с perl_set. Все отлично получилось. То что надо!

Всем огромное спасибо, проблемму считаю решенной!

Если перл при обработке perl_set ходит в базу, то в на всё время хождения
данный рабочий процесс nginx'а не обрабатывает другие соединения.
Именно это и называется "длительной операцей".


Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.