Есть на свете такой интересный протокол SNMP для управления и снятия статистики для различных целей.
Так вот в различных реализациях этого протокола существует проблема с различным интервалом обновления таблиц со счетчиками.
Например в операционной системе CentOS интервал обновления счетчиков по сетевым интерфейсам равен 30 секундам. Поэтому снимать статистику с интервалом менее 30 секунд нет смысла — будете получать нули.
На других устройствах, например некоторые модели ADSL модемов, интервал обновления равен 15 секундам.
Решением этой проблемы может послужить метод изменения константы IFTABLE_CACHE_TIMEOUT
Для этого необходимо изменить значение nsCacheTimeout в памяти snmp демона
В зависимости от платформы решение может быть разное.
1. Linuxообразная система
выполняем такую команту(выделено синим)
# snmpset -c private -v 1 127.0.0.1 1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.2.2 i 5
NET-SNMP-AGENT-MIB::nsCacheTimeout.1.3.6.1.2.1.2.2 = INTEGER: 5
Естественно у вас должны быть права на запись.
2. На других платформах с настроенным SNMP Private доступом
Берем любой SNMP волкер с возможностью записи идем в ветку
1.3.6.1.4.1.8072.1.5.3.1.2.1.3.6.1.2.1.2.2
и меняем значение на 5
Таким образом счетчики будут обновляться через 5 секунд.
Проблема в том, что эти изменения будут работать до перезапуска демона/службы или до перезагрузки системы.
Дело в том, что для изменения этой константы необходимо перекомпилировать исходники SNMP демона, что на некоторых платформах затруднительно.
Ну и самое простое решение этой проблемы — изменить интервал снятия статистики 🙂