Xpoint
   [напомнить пароль]

LWP и случайно появляющийся read timeout

Метки: [без меток]
2008-02-21 09:31:21 [обр] Nuclon(0/22)[досье]

Даже не уверен, в какой именно форум это писать.
В общем - я сейчас работаю над ПО для мониторинга серверов через HTTP протокол. Там достаточно много специфики, вроде проверки времени отклика, проверки контента и т.д.

Проверка проходит через LWP::UserAgent модуль.

Клиент начал жаловаться, что периодически программа пишет "read timeout" сообщения, хотя при этом с сетью все нормально.
Проблему у себя я повторить не смог.

На сервере клиента, где работает программа, еще крутится nagios и еще пару сервисов. Nagios, параллельно, мониторит те же самые сервера - он никаких ошибок при работе с сетью не указывает.

Подскажите, в какую сторону рыть, как диагностировать? Потому что у меня идеи уже подходят к концу.

Операционная система - FreeBSD, если поможет.

спустя 38 минут [обр] Nuclon(0/22)[досье]
"с сетью все нормально" - утверждение системного администратора. Доступа к серверу у меня нет, так что все что я могу делать - это попросить админа что-то запустить, прислать output, прислать какие-то логи.
Ну и еще, конечно, могу что-то поменять в совем ПО
спустя 1 час 15 минут [обр] Алексей Севрюков(61/1292)[досье]
Nuclon[досье] Вы же не думаете что клиент проверяет сеть одновременно с появлением ошибки? Я вот думаю что нет. Следовательно когда обнаруживается ошибка - проблем с сетью уже как раз и нет. ИМХО.
спустя 2 минуты [обр] Nuclon(0/22)[досье]
Алексей Севрюков[досье]
на том же сервере стоит Nagios, и он мониторит те же серваки, что и мое ПО, по 80 порту.
никаких ошибок он не дает. Таким аргументом пользуется клиент.
спустя 15 минут [обр] Алексей Севрюков(61/1292)[досье]
Nuclon[досье] А более низкий уровень не пробовали использовать? Сокеты, например?
спустя 9 минут [обр] Nuclon(0/22)[досье]
поправьте меня, если я не прав, но сообщение "read timeout" как раз отдает Socket.pm, который юзается IO::Socket::INET, который, в свою очередь, юзается Net::HTTP и LWP.
спустя 3 минуты [обр] ginnie(0/6)[досье]
Nuclon[досье] Советую в программе при получении timeout попытаться получить страницу с какого-нибудь надежного сайта (например, yandex.ru). Если страница получится, значит проблема либо с сайтом, который мониторится, либо с каналом до сайта. Если не получится, значит проблема либо в скрипте, либо на сервере, где он запускается. Т.к. на нем работает Nagios, скорее всего запущен Apache, надо в обработке timeout добавить еще получение страницы с этого Apache.
спустя 38 минут [обр] Nuclon(0/22)[досье]
ginnie[досье]
дело в том, что следующий запрос, посланный к тому же сайту уже будет уже нормальным.
спустя 19 минут [обр] Алексей Севрюков(61/1292)[досье]
Nuclon[досье] Тогда вполне возможно что Nagios просто не замечает такие вещи, это тоже вполне может быть.
спустя 1 час 50 минут [обр] ginnie(0/6)[досье]
Nuclon[досье] Какой timeout Вы задаете для LWP и есть ли в логе сервера, к которому Вы обращаетесь строчки с Вашими обращениями, которые завершаются по timeout'у?
Powered by POEM™ Engine Copyright © 2002-2005