Трекинг текущих коннектов

Andrew Kopeyko kaa at zvuki.ru
Thu Jan 11 19:53:54 MSK 2007


On Thu, 11 Jan 2007, Igor Savchenko wrote:

>>> Идея такая - перловый хендлер на начало соединения вешается
>>> (вычисление какой-то переменной, побочный эффект - где-то сделать
>>> пометку о начале соединения), а конец отслеживается по появлению
>>> записи в логе.
>
>> Да, можно так.
>
> Постоянно читать логи, обрабатывать.. почти в режиме риалтайма. При
> том что конеектов будет по несколько сотен на несколько сотен
> виртуалхостов.

Эти несколько сотен коннектов - на все виртуальные сервера?

Или на каждый? Тогда получаем десятки тысяч соединений с сервером.

> И с учетом того что ресурсы и так все под завязку, то
> это вообще получается какая-то аццкая мегамашина, для решения этой
> задачи. Всеже с двумя хендлерами вариант самый помоему удачный и
> простой. Перловый хендлер ложит инфу в базу... после этого post_action
> и другой перловый хендлер удаляет  инфу из нее.

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

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


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


-- 
Best regards,
Andrew Kopeyko <kaa at zvuki.ru>
http://www.zvuki.ru/ sysadmin






More information about the nginx-ru mailing list