
Dmitry
15.04.2016
07:04:45
До потому что скрипт может завершиться аварийно из-за проблем на железке
Блин. Купи себе 100500 китайских свичей,. и прочувствуй это !
Нафига мы пишем в свичах raise self.NotSupportedError()
давай просто вываливаться, делая 1/0

Google

Dmitry
15.04.2016
07:07:52
все равно NOC'у повиг, как завершился скрипт

Dmitry
15.04.2016
07:08:46
думай, как собрать интерфейсы со своего ящика и не завалить его
или увеличивай таймауты на get_interfaces

Dmitry
15.04.2016
07:09:08
Валит его не get_interface
а следующий скрипт
который запускается через 2 миллисекунды
я уже тебе вывод команд "top" приводил несколько раз
куда ты смотрел ?
в десятый раз повторяю
после завершения скрипта get_interfaces еще несколько секунд (может и минуту) освобождается память и ресурсы проца
И именно следующие скрипты, которые запускаются сразу после get_interfaces, "добивают" железку
услышь меня
Или, если уж тебе очень нужно, чтобы скрипты выполнялись одновременно один за другим, реализуй, чтобы это все было в одной сессии, как ты описывал в https://www.evernote.com/shard/s57/sh/7157be98-3043-46e0-a504-19e334895de2/4f6fadcbabb62f53

Google

Dmitry
15.04.2016
07:24:12
тогда можно будет использовать кеширование и т.п.

Dmitry
15.04.2016
07:30:47
в твоем случае это не поможет
еще раз -- чини get_interfaces, чтобы он нормально работал на этой железке
без извратов со sleep
потереби juniper, как проигнорить динамические интерфейсы
у тебя со скриптом проблема, а ты пытаешься discovery переломать

Илья
15.04.2016
07:32:09
@dvolodin некоторым железкам может быть действительно тяжело выполнять некоторые команды

Dmitry
15.04.2016
07:32:42
может
но на то есть capabilities, скажем

Dmitry
15.04.2016
07:32:53
а я тебе еще раз говорю, что при любых раскладах, починенный или не починенный get_interfaces, после отработки команды "show interfaces" железка еще некоторое время освобождает ремурсы
ресурсы

Dmitry
15.04.2016
07:33:21
дим, у меня были MX'ы с кучей интерфейсов и сотней пиров
и им было пофиг

Dmitry
15.04.2016
07:33:47
я сейчас открою два окна терминала, в одном запущу "show interfaces". а вдругом "top"
сниму на видео и пришлю

Dmitry
15.04.2016
07:34:01
ну сними
еще раз

Dmitry
15.04.2016
07:34:03
тогда ты мне поверишь ?

Dmitry
15.04.2016
07:34:12
мне пофиг, в общем-то
сделай так, чтобы скрипт ее не грузил

Google

Dmitry
15.04.2016
07:34:23
в реальной джелезке, а не сферической в вакууме
короче, тебе пофиг, что на реальных железках NOC не работает ?
Я именно хочу услышать твое окончательное мнение

Dmitry
15.04.2016
07:36:02
за работу с железом отвечает скрипт

Dmitry
15.04.2016
07:36:09
и?

Dmitry
15.04.2016
07:36:11
если есть проблема, ее нужно править на уровне скрипта
все

Dmitry
15.04.2016
07:36:28
другой команды,. кроме "show interfaces" там не существует
эта команда жрет память и грузит проц

Илья
15.04.2016
07:39:17
@dvolodin твои скрипты работают независимо, даже если все команды выполняются правильно, их исполнение занимает ресурс железки
в isis есть специальный бит, который железка может выставить если ей плохо, чтобы через нее другие не рассчитывали маршруты
в ноке нужна галочка, если ее отмечаешь, то шедулер должен раскидывать джобы для этой железки во времени
а еще круче, автоматом, на основе мониторинга загрузки цпу
а по наличию свободной памяти вообще отказывался бы заходить на железку

Dmitry
15.04.2016
07:41:49
мне не очень нравится идея выставлять overload руками

Илья
15.04.2016
07:42:02
это один из вариантов
если у тебя есть брас

Dmitry
15.04.2016
07:42:12
не самый плохой, я не спорю

Илья
15.04.2016
07:42:17
на него можно один раз навесить оверлоад

Dmitry
15.04.2016
07:42:44
мое требование, скорее -- процесс не должен порождать новых запросов в базу

Google

Илья
15.04.2016
07:43:05
тебе жалко базу, а нам железки

Dmitry
15.04.2016
07:43:19
добавить sleep между проверками в случае перегрузки - техически я могу
думайте над алгоритмов
короче -- это динамический признак который живет внутри процесса discovery в рамках job'а
думайте, как его выставить

Dmitry
15.04.2016
07:45:08
для базы я могу поставить тазик с SSD последнего поколения и DDR4?, а тысячу железок поменять уже напрягает

Dmitry
15.04.2016
07:45:27
@ivzakharov мне жалко не базу, а себя. Очередной раз объяснять неочевидное поведение - очень муторно
дим, 2 SSD будут стоить 12k :)

Dmitry
15.04.2016
07:46:33
а заменить Juniper MX80 на Juniper 960 дороже

Dmitry
15.04.2016
07:46:34
или ты собрался десктопные ставить
еще раз -- есть четкий и конкретный алгоритм - обсуждаем
нет - обсуждать нечего

Ilya
15.04.2016
07:47:11
@dvolodin у нас нок на голде крутиться - ssd cache и т.п.

Dmitry
15.04.2016
07:47:56
Дим. Ты же сам вчера предложил

Ilya
15.04.2016
07:48:12
Про идею с дерганьем железа в зависимости от ее загрузки - хорошая идея!

Dmitry
15.04.2016
07:48:19
1. засунуть пакет скриптов в одну CLI сессию
2. Внутри это сессии обеспечитб кеширование и обработку ошибок.

Ilya
15.04.2016
07:48:48
Даже вендорные решения не все могут так сделать, например junos space затрахивал по snmp ex2200 и сам открывал кейсы из-за этого)

Dmitry
15.04.2016
08:03:25
обработка ошибок подразумевает следующее
если скрипт завершился с ошибкой NotSupported, то сессия не прерывается

Google

Dmitry
15.04.2016
08:04:14
Если скрипт завершился с другой ошибкой, то сессия прерывается
И не просто прерывается, а пытается корректно завершится, вызывая функции SessionSutdown() и т.п.
По моему, это гораздо важнее,. чем cards, i18n и т.п.

Dmitry
15.04.2016
08:07:16
нет, не важнее
это вырожденный и ограниченный случай
а cards сейчас в работу идет
я могу сделать механизм при четко прописанном алгориьме
продумывать его сейчас мне просто некогда

Dmitry
15.04.2016
08:10:21
ну значит подожду, пока созреешь. в текущем состоянии SA у меня не работает
приятно было пообщаться

Dmitry
15.04.2016
08:14:40
удивительное дело, все хотят получить все готовое
и при этом не перетрудиться

Илья
15.04.2016
08:33:56
перетруждаться ни в коем случае нельзя

Dmitry
15.04.2016
08:48:03
в принципе, флажок акамутохировато на железку держать можно
скажем, по аналогии с bgp dampening
типа набрала штрафов - в отстойник на время

Ilya
15.04.2016
08:52:07
ага
Можно повзаимствовать механизм

Илья
15.04.2016
08:52:49
не уверен что это тут применимо
можно конечно, но это не решает исходную проблему

Алексей
15.04.2016
09:09:50