![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| study |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 20.9.2004 Репутация: нет Всего: нет |
Народ, сделал пинговалку на основе модуля Net::Ping, почему когда пингуеться одновременно несколько хостов время задержки увеличивается
У меня запускается сразу несколько скриптов, и хосты пингуются одновременно, может из-за того что хосты пингуются одновременно время задержки увеличивается, кто-нибудь с этим сталкивался??? Заранее спасибо. |
|||
|
||||
| Kiber_rat |
|
|||
![]() MACMANIAC ![]() ![]() Профиль Группа: Участник Сообщений: 276 Регистрация: 18.4.2002 Где: Ashdod, Israel Репутация: нет Всего: 9 |
Приведи пример кода... Может тебе стоит форкать пинг каждого сервера?
-------------------- Best regards! @..@_____Ku6ep =*=______\______KPbIC
|
|||
|
||||
| StealtH |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Я уже сталкивался с такой траблой, все дело в том, что задержка появляется из-за того, что модуль Net::Ping скрипт сначала загружает, а потом юзает его функции и если скрипт большой, значит и другие модули есть. Это вроде сотые доли секунды, но при большом количестве пингуемых хостов получается большая разница. Проблему эту я решал с помощью следующего куска кода
Суть такова, что ты рождаешь процессы пинга, но уже правда используется сиситемная команда, а не модуль, соответственно она выдает наиболее точные результаты в выде файла, которые легко можно проанализировать написав небольшой парсер, записать куда тебе нужно, а потом удалить(переместить, короче сделать что захочется). Мне это сильно помогло, попоробуй. |
|||
|
||||
| Ivan Kolesnikov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 9.3.2005 Где: г. Новокузнецк Репутация: 2 Всего: 6 |
Я то же с этим недавно сталкнулся (нужно было ping и tnsping сразу для нескольких хостов) реализовал через fork, дочернии процессы запускали командру (`ping localhost > /dev/null` а возвращаемое значение я складывал в pipe, после завершение команды процесс туда же складывает и слово 'exit'. Основной процесс занимается тем, что читает сообщения из очереди, обрабатывает их и если получил слово exit, уменьшает кол-во запущенных процессов на 1, когда их станет 0, он завершается.
Мне просто не очень хотелось создавать отдельные файлы, а вдруг у меня еще и прав на это не будет, а так все просто, на мой взгляд. --------------------
|
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |