2013-03-23 3 views
1

Я запускаю приложение, которое собирает данные snmp из более чем 2000 переключателей каждые 5 минут, upoctets, downoctects, состояние порта и отображает их на графиках и представление переключателя на веб-странице с зеленым или красным цветом в соответствии с статус порта, первый раз, когда я добавляю устройство, я прохожу через него, получаю индекс порта, сохраняю его в db, каждые пять минут я получаю индекс порта от db, запускаю его против oid, а snmpget получает порт данных по порту и сохраняет их в mysql.2000 переключатель snmp на порт

Есть почти 8 жилок и более 2000 устройств, которые в серийном исполнении занимают больше времени, а следующий выход не выполняется до тех пор, пока последний не завершится. я слышал о snmpbulkget или snmptable, но не понимаю их,

Я хочу альтернативный способ, с помощью которого я могу уменьшить сетевой трафик и получить данные из таблицы навалом, а я выполняю запрос snmpget для каждого из них по одному, normaly exeecd разница в пять минут.

Я отправляю запрос таблицы коммутатору и возвращает таблицу значений для всех состояний порта.

это уменьшит ожидание следующего вызова и ускорит процесс, а также уменьшит сетевой трафик.

Возможно ли это?

Можете ли вы улучшить качество моего сенарио, где каждые тысячи минут запрашиваются слишком много тысяч устройств для многих интерфейсных счетчиков.

благодаря

ответ

0

SNMP Команда GetBulk позволяет указать несколько OIDs и параметр maxrepetitions, который ограничивает количество varbinds посланного агента в ответе. Он идеально подходит для оптимизации производительности в ситуациях, описанных вами. Конечно, есть улов:

  • SNMP GetBulk не доступен в SNMP v1
  • Это может быть сложно установить правильный параметр maxrepetitions - некоторые агенты отказываются отправить ответ, если определенное количество varbinds должны быть включены в ответ
Смежные вопросы