Ad Widget

Collapse

Переполнение при расчете скорости на инт

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • ashum
    Junior Member
    • Apr 2015
    • 8

    #1

    Переполнение при расчете скорости на инт

    Помогите разобраться, где проблема.
    Считаю исходящую скорость на интерфейсе через net.if.out[eth1,bytes].
    Type of information Numeric (float).
    Custom multiplier 8.
    Store value Delta (speed per second).
    При трафике около 550 mbps где-то что-то переполняется, и значения скорости отображаются некорректно. Прикладываю график. Должна быть плавная дуга, т.е. провалов в скорости в это время нет.
    Zabbix 1.8.2
    Attached Files
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    Во первых для хранения надо использовать int64, а не float.
    Во вторых надо убедиться что в 1.8.x net.if.out[] не возвращает данные в int32, в последнем случае решить проблему можно только (не считая апгрейда до актуальных версий zabbix) уменьшением периода опроса ниже 30 секунд, а лучше секунд до 10 (но хранить это надо все равно в int64, так как вы еще на 8 умножаете).

    Comment

    • ashum
      Junior Member
      • Apr 2015
      • 8

      #3
      int64 - это как называется в интерфейсе?
      Как убедиться что возвращает данные в int32? Могу только увидеть, что возвращается значение, например, 3652541534.

      Comment

      • Zentarim
        Senior Member
        • Mar 2012
        • 526

        #4
        Не сталкивался с проблемой, однако:
        Code:
        $ snmpget -v2c -c<COMMUNITY> <IP ADDR> .1.3.6.1.2.1.2.2.1.10.10101
        iso.3.6.1.2.1.2.2.1.10.10101 = [B]Counter32[/B]: 2885355031
        Возможно при 64 счетчике там будет написано Counter64

        Comment

        • Jimson
          Senior Member
          • Jan 2008
          • 1327

          #5
          Originally posted by ashum
          int64 - это как называется в интерфейсе?
          Как убедиться что возвращает данные в int32? Могу только увидеть, что возвращается значение, например, 3652541534.
          А там что много вариантов, в интерфейсе то? Очевидно что int64 это целочисленное значение.
          Как убедиться не знаю, можно код агента посмотреть, можно посмотреть возвращаемые значения после того как изменишь тип данных, если не будет чисел превышающих 2^32*8 значит агент возвращает int32, и, следовательно, надо уменьшать кардинально период опроса.

          Comment

          • ashum
            Junior Member
            • Apr 2015
            • 8

            #6
            Спасибо за советы.
            Посмотрел через zabbix_get -s -p10050 -k"net.if.out[eth1,bytes]" возвращаемые значения, действительно 32-разрядный счетчик.
            А график такой видимо потому, что за минуту счетчик успевает два раза обнулиться.
            Поставил обновление 30с. Теперь график стал нормальный.

            Тип данных оставил numeric (float). Пока это не мешает.
            Еще раз спасибо за помощь.

            Comment

            Working...