Форум » » Ping Watchdog - нагрузки на процессор, опыты? » Ответить

Ping Watchdog - нагрузки на процессор, опыты?

p.vladi: Доброе время суток! Давно чушуться руки добавить функционал Ping Watchdog в модуль управления устройстами. Часто бывают что виснут устройтва, в основном английский спутниковый приёмник Sky и сетевой проигрыватель Dune HD (Кстати когда виснет Dune, два раза было что он полностью "клал" всю клиентскую сетку... притом только у одного клиента. как.. и почему до сих пор не понятно) Вопрос собственно: На сколько консольный Ping загружает системные ресурсы, особенно на процессорах второй серии. сколько таких модулей можно практически запустить на процессоре, с пингом, скажем, каждые 5 минут. Заранее спасибо!

Ответов - 12

eoulianov: Добрый вечер! Ping и прочие методы "потыкать палочкой" в труп загружают скорее контроллер, чем устройства - Dune получает ICMP запрос только себе (он же не широковещательный), а контроллер будет пинать всё, и ему же следить за ответами. Вот ещё моменты: -кроме собственно ping есть прорва "сенсоров", и часто достаточно посылать какие-то пустые команды по основному управляющему соединению - типа посылаешь \x0D\x0A, а в ответ - MC3> -устройство может помереть частично не угадаешь как. Например, вполне вменяемые спутниковые ресиверы внезапно перестают выдавать звук в HDMI на DM, а после перезагрузки - работают. И не поможет watchdog по видеосигналу, тут только в эксплуатации набирается статистика сбоев и там уже подумаешь, как их диагностировать. -частоту этого самого ping стоит определять здраво подумав - с учетом "осмысленности действий" системы автоматики, например, если Dune никто не смотрит, достаточно будет проверять её раз в 5 минут, и перезагрузить после 3 неответов, и ещё раз перезагрузить, если 3 следующие ping тоже неуспешны, а третий раз - без толку; а вот через сутки - может быть, вдруг причина устранилась) А если Dune смотрят, то делать ping стоит чаще, чтобы Dune оказалась перезагружена раньше, чем милейший позвонит вам. Ну а если дозвонился - получишь "извините, по ходу всё само исправилось.." -можно увлечься проверкой множества параметров, и делать виртуозные автоматические процедуры восстановления (например, при обнаруженном с помощью детектора движения подвисании картинки со спутникового ресивера включать вместо него другой ресивер, а на нём автоматом выбирать тот же канал) но как ни крути, симптоматическое лечение всегда опаздывает, лучше по возможности разобраться в причине проблемы и избавиться от неё - например, поставить лишний вентилятор, или обновить прошивку, или объяснить, что смотреть BD на Dune иногда не айс. Впрочем, второе не отменяет первого) -иногда удачнее делать упреждеющие действия, даже до того, как обнаружена проблема, например перезагружать спутниковые ресиверы в 5:00 каждый день на всякий случай. Или вот ситуация - милые телеки Hantarex не всегда слушаются команд, и это не зависит от времени, прошедшего с момента включения, или выполения предыдущего переключения и т.д, просто на десятый раз он не выбирыет HDMI2, а потом ещё 10 переключений всё идёт на ура. И понять, что он не выбрал-таки HDMI2 можно - просто запросить текущий вход и выяснить, что он не сменился. Но быстрее и эффективней просто 15 раз подряд запросить этот чёртов HDMI2, и пользователь не будет ждать, пока контроллер убедится, что прошлая команда не выполнилась. Удачи)

beomaster: Все так. А вообще лучший сенсор, определяющий наличие проблемы- сам клиент. Во времена начала нтв+hd глючные тюнера доставляли массу проблем, передача hdmi по двум витым парам переставала работать, первые сетевые плееры периодически клали сетку, и решили стандартно запитывать системы с одного автомата и через промежуточное нормальнозамкнутое реле, а от контроллера кидать в щит витую пару, на интерфейсе панели делали кнопку типа "все плохо" и систему перегружали обесточиванием, а затем тупо дискретными ик-командами поднимали. Сейчас ситуация получше, но все равно я стараюсь запитывать ту же дюну и нтв-ху через реле, чтобы гарантированно их обресетить с пульта.

p.vladi: eoulianov: "загружают скорее контроллер, чем устройства" Именно про это я и спрашивал, я знаю что пинг само устройство не загружает. интересно как консольные пинги влияют на сам процессор второй серии, на сколько ему это в тягость. beomaster: Да, устройства на ST-PC, кнопка "перегрузить" на второй странице управления каждого устройства, рядом с цветными "A B C D" включением субтитров и сменой языковых дорожек Просто хочется автоматики. понятно что видео сенсор на зависшем приёмнике ничего не даст, по этому и думаю про пинг (хотя тоже не факт что GUI не завис, а сеть работает) А по поводу 05:00 - никогда не знаешь когда клиент будет фильм смотреть, есть люди которые всю ночь что-то смотрят P.S. Интересная штука. жалко только что контакты открыты


eoulianov: Я не замечал каких-то ужасных проблем при частом исполнении команд через символ Console. Думаю, можно запустить ping непрерывно (т.е. как только получили prompt, тут же слать команду снова) и посмотреть насколько возрастёт загруженность контроллера с помощью команды top. Я стараюсь, чтобы у контроллеров, к которым подключаются панели, на idle приходилось не менее 85% времени. Реально контроллер грузится криво написанным кодом и зацикливающейся логикой в SIMPL. Особенно плохо, если приходится "разбирать" большой текстовый поток входящих событий. Но тормоза на панелях могут быть не только из-за загрузки контроллера - может тормозить "красота" с полупрозрачными кнопками и Core3 UI, может быть забит канал - Cresnet, WiFi, или сама плата Ethernet на контроллер, например, рассылкой на все панели множества ненужных в данный момент фидбеков, или что-нибудь широковещательное сводит с ума Ethernet контроллер. Если есть желание, можем собраться в представительстве или каком-нибудь баре - поболтать про диагностику проблем контроллеров и панелей и про отладку. Там витает идея чего-то вроде семинаров, не только для новичков)

p.vladi: Я бы с удовольствием пообщался с единомышленниками, к сожалению, по географическим признакам это невозможно :-( Буду пробовать, сообщю о результатах! правда, я еще не понял как можно замереть уровень загруженности процессора второй серии

eoulianov: на "быстрых" контроллерах 2-й серии (AV2, PRO2, CP2*, ...) работает мониторинг времени исполнения, и консольной командой top можно выяснить, сколько какой процесс за последние несколько секунд употребил %% от процессорного времени. В маломощных контроллерах (DIN-AP2, QMI-RMC..) этого нет. В вашем примере контроллер в одной консоли будет делать свой ping (я правильно понимаю?), а во второй - вы можете выполнять команду top. Среди всех процессов самый важный - idle, процесс, который выполняется когда контроллер не нагружен. Нужно, чтобы ему оставалось порядка 85% этого самого времени, иначе в бою могут наблюдаться заметные запаздывания при нажимании кнопок на панелях.

p.vladi: Отчёт: Сделал модуль, основанный на символе console и sio Поместил в программу 6 модулей, 3 с IP рабочих устройств, 3 с IP из несуществующей подсетки. Результаты эксперимента: console - один. в то время как каждый модуль использует свой символ, выходы дублируются, включая от доступа к косолю через toolbox. ping не имеет никакого влияния на загрузку процессора - за исключением... Поставил частоту проверки - 1 минуту - все ок. нагрузка процессора 0.х% поставил частоту проверки - 5 секунд - PRO2 накрылся полностью :-) не отвечал никак, пришлось держать SW-R перегружая. поставил частоту проверки - 30 секунд - все ок. нагрузка 0.х% Результатом очень доволен, громадное спасибо всем кто помог!!

yanovik: Ищу альтернативный способ пропинговать ряд устройств. Метод описаный выше не годится для большого числа устройст, либо если на том же процессоре в другом слоте параллельно пингуется другое устройство через консоль. На яху пишут, что контроллеры второй серии вообще прерывают программу на время пинга, не уверен что это так. Какие идеи?

eoulianov: 2 идеи: 1. использовать контроллер 3-й серии - там даже на RMC3 хватит ресурсов для неочевидного количества пингов, и 2. перенести эту задачу на PC - среди тьмы всяких ping monitorов выбрать с нужным функционалом - чтобы слал письма или в консольку по telnet в контроллер Crestron докладывал

yanovik: использовать контроллер 3-й серии - там даже на RMC3 хватит ресурсов для неочевидного количества пингов, и Насчет 3ей сериии не соглашусь. PRO3 так подвисал, что даже переставал отвечать на нажатия на лицевой панели(10 запущенных программ, каждая раз в 10 сек пинговала).

eoulianov: Постарайтесь не использовать такие ядерные штуки в каждой из 10 программ)) Тут лучше наоборот - если в контроллере возможно одноновременное обращение к файлам, к консоли, к сети - то лучше стараться их разнести во времени (на уровне контроллера, а не отдельной программы), не запускать одновременно файловые операции, не использовать более одного символа консоли и в нём не забывать дожидаться промпта, стараться не делать много обмена по сети одноверменно (т.е. инициализацию делать последовательно). У меня этот пингующий модуль и на 2-й и на 3-й серии опрашивает адреса по списку запрос через секунду после получения ">" - это не наносит видимого ущерба исполнению.

Kaveckiy: p.vladi а можете модулем поделиться? Сейчас появилась задача мониторить наличие в сети нескольких хостов.



полная версия страницы