Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > access_log: как получить доп. времена?


Автор: sisaev 22.6.2007, 13:17
Добрый день!

Кратко:
Как можно настроить логирование апачем дополнительных времен доступа клиента к серверу: 
 - первого байта запроса от клиента
 - последнего байта запроса от клиента
 - время посылки первого байта ответа

Описание проблемы:
Столкнулся с проблемой замедления получения HTTP клиентом ответа с HTTP сервером приложений (Apache 1.3 + Java).
Анализ показывает что серверный код работает очень быстро - всегда быстрее 2 секунд.
Настройка time_taken в access_mod (опция %T) показывает что Apache всегда логирует время HTTP транзакции 2 или менее секунды. Не смотря на это на клиенте видны зависания на пол и более минуты.
Всё это дело случается через определенное время работы – на одном из сервером стабильно на 3-и сутки.

Хочется получить точную картину замедления – найти узкое место и попытатся его решить.


Приму все возможные мысли smile
Заранее спасибо.

Автор: Сумасшедший 22.6.2007, 21:10
sisaev, А задержка точно происходит именно на веб-демоне?- чаще происходят задержки про резолве доменов, особенно если используются нестандартные ДНС и берется какой-то контент с других ресурсов.

Автор: mahoro 7.7.2007, 00:24
А ось какая?

Сам вопрос слишком специфичен - он скорей всего останется без ответа (или ответом будет - пишите свой модуль логгирования)

Проблема с задержкой при считывании запроса решается с помощью accept filters - в FreeBSD это http_accf.ko и инструкция AcceptFilter on в httpd.conf. В linux это тоже есть, но как именно называется я не помню, надо гуглить..

Суть этой технологии - запрос передается апачу только после полного его получения от клиента.

Автор: sisaev 16.1.2008, 12:53
На всякий случай скажу что вопрос удалось решить использованием Oracle WebCache и настройкой в нем очень подробного логирования. В логирование можно взять время установки TCP хэндшейка, время получения первого байта и т.д.

Т.к. Oracle WebCache ставиться до апача (или любого веб сервера) и работает с вебсервером по протоколоу http 1.1, то удалось резко снизить иснтенсивность создания новых соединений на сервере и система сама по себе стала работать без сбоев. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)