Есть ли возможность вывести в лог информацию о времени обработки конкретного запроса в таком виде:запрос от клиента на прокси - запрос на сервер - ответ от сервера - ответ клиенту.
Можно без подробностей типа "начал писать в сокет - закончил писать в сокет".История такая: имеется squid ("прокси"), через который работает некий сервис, который молотит с 1 хоста ("клиент") на другой хост("провайдер") короткие, но частые запросы POST (1-2КБ, до 50 запросов в сек, но не более 1500 в час). Время от времени "клиент" замечает непонятные задержки по 45 сек (?!), распределение явно не нормальное, причем известен даже точный день возникновения проблемы, но админ клянется, что ничего не трогал.
Я - клиент, страдающая сторона, имею черный ящик, который нужно вылечить. Есть определенный багаж решенных головоломок такого рода. Причем каждый раз админ клялся, что ничего не менял, и проблема оказывалась действительно в установках по-умолчанию, о коих он имел слабое представление, а я узнавал после упорного гугления и изучения ненужной мне матчасти. В этот раз ничего не нашел, поэтому обращаюсь к сообществу.
Что имеется: снифером выяснили, что задержки именно на прокси (подпольно, сам админ этого не делает, дабы не признавать, что проблемы точно у него). Версия сквида не известна, но одна из последних (в этом он аккуратен). Если это критично, выясню. Кеширование для "провайдера" уже отключено, но, вроде посты и не кешируются. По пулу ограничений нет. Я так понимаю, духкилобайтных запросов это вообще не касается, или нет? Вообще, очень похоже на работу сборщика мусора, когда идет 30-50 запросов в секунду, этих задержек нет. Явной корреляция с загрузкой цпу не просматривается, но проявляется всегда в рабочее время, когда вся контора ломится в сеть. И опять, большинство запросов обрабатываются за доли секунды, а по среднему с 0.4 сек выросло до 2 сек, не заметить было невозможно.
Итого, требуются идеи, что можно заподозрить, может, у кого-то было что-то подобное. И, для начала, первый вопрос сабжа, чтобы без снифера что-то предъявить или наоборот, исключить сквид и присмотреться к среде (железо, ось).
Очень надеюсь на помощь.
Критичные сервисы через прокси обычно не выпускают, а выпускают напрямую, то есть NAT-ят. Судя по фразе - "проявляется всегда в рабочее время, когда вся контора ломится в сеть" это значит что канал удавлен. Если хотите именно через прокси, то сделайте в delay_pool отдельный аксель для айпишников этого сервиса и дайте ему максимальный канал, остальным юзерам удавите канал в delay_pool на полканала или еще меньше. Если будете выпускать напрямую без прокси, то в сквиде все равно настройте delay_pool и не давайте сквиду весь канал, то есть опций -1/-1 у вас в пуле быть не должно, а должны стоять значения в зависимости от ширины вашего канала.
> По пулу ограничений нет.уверены?
> Я так понимаю, духкилобайтных запросов это вообще не касается, или нет?смотря что указано в delay_pool, если он есть.
Для понимания delay_pool, пример:delay_parameters 2 -1/-1 2000/16000
-1/-1 – весь канал отдать сквиду - анлимитед, а индивидуально на каждого юзверя ведерки по 16кб, а струйка в него в 2кб ! (сначала быстро усосет 16кб, а потом будет лить со скоростью в 2кб/cек) точнее - быстро будет усасывать объекты размером до 16кб , объекты больше 16кб будет сосать на скорости 2кб/сек.
Сравните со своими настройками delay_pool.
> Критичные сервисы через прокси обычно не выпускают, а выпускают напрямую, то есть
> NAT-ят.Спасибо, с этим я целиком согласен, но те, кто имеют доступ "туда", ничего лишнего сопровождать не хотят, а тех, кто хочет, "туда" не пускают. Короче, есть, что есть, я ж тоже тут не своим делом пытаюсь заниматься :(
По поводу "лить" и "сосать" - пул привилегированый, подробности попытаюсь узнать, но 2кб/сек - это было бы сносно, а проявляются именно задержки по 45 сек.
Неплохо бы увидеть загрузку сервера в этот момент, а так же, если вам удастся подсмотреть конфиг файл, это б было бы просто шикарно.
Если не удастся посмотреть загрузку, то хотя бы узнайте конфигурацию сервера по железу, и сколько приблизительно клиентов сидит, плюс, такой вопрос, если у вас аутентификация на сквиде?