Ad Widget

Collapse

Disk read/write request responses are too high

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Narkolog
    Junior Member
    • Nov 2020
    • 20

    #1

    Disk read/write request responses are too high

    Доброго времени суток
    Подскажите пожалуйста, как настроить правильные значения в данном правиле обнаружения ({#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m)), так как триггер (Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)) периодический ругается на превышения, но по графику Энтерпрайза от Oracle не показывает критических нагрузок. Система с Oracle:
    Дисковая стойка 12 SAS 15k
    RAID 1 0
    Cashe Flash 800gb.

    Значения который присылает забикс:

    Information started at 18:19:27 on 2020.12.09
    Information: sda: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)
    Host: HOSTNAME
    Severity: Warning
    Operational data: 1.78 ms, 20.04 ms
    Original problem ID: 525644
    Last edited by Narkolog; 09-12-2020, 15:00.
  • Narkolog
    Junior Member
    • Nov 2020
    • 20

    #2
    (last("vfs.dev.write.time.rate[{#DEVNAME}]")/(last("vfs.dev.write.rate[{#DEVNAME}]")+(last("vfs.dev.write.rate[{#DEVNAME}]")=0)))*1000*(last("vfs.dev.write.rate[{#DEVNAME}]") > 0) Подскажите пожалуйста расшифровку данного выражения? Откуда взято значение *1000*, какое значение должно быть в моем случае? }]") > 0

    Comment

    • Kos
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Aug 2015
      • 3404

      #3
      Originally posted by Narkolog
      Подскажите пожалуйста расшифровку данного выражения?
      Вы всерьёз думаете, что мы видим, что за прототипы элементов данных у вас там определены?
      Подозреваю, что, наверное, используется какой-то готовый шаблон, но что за шаблон и какой версии, а также что в нём задано - этого мои телепатические способниости не улавливают.

      Я могу лишь прокомментировать то, что из предоставленной информации понимаю.
      Судя по формуле, у нас имеется прототип вычисляемого (calculated) элемента данных, который считает отношение времени выполнения запросов на запись за какую-то единицу времени (write.time.rate) к их количеству за ту же единицу времени (write.rate), т.е. среднее время выполнения одного запроса на запись. Результат домножается на 1000, видимо, из-за разницы в единицах измерения - скажем, исходный write.time.rate был в секундах, а показать хочется, сколько (в среднем) миллисекунд уходит на один запрос. А поскольку за какой-то интервал запросов на запись может и не быть вовсе, то write.rate может оказаться нулевым, и получится деление на ноль. Чтобы не возникало проблем, в формулу добавлены дополнительные условия сравнения этого параметра с нулём, которые приводят к тому, что при нулевом значении и общий результат окажется нулевым (но не будет ошибки деления на ноль), а при положительном - будет равен (write.time.rate/write.rate)*1000.

      Comment

      • Narkolog
        Junior Member
        • Nov 2020
        • 20

        #4
        Извиняюсь, немного упустил данный момент, думал для вас это не составит труда, как оно и оказалось, сразу в корень увидели проблему и дали ответ.
        Спасибо большое.
        Готовый шаблон (Template OS Linux by Zabbix agent active) Правило обнаружение дисков (Template Module Linux block devices by Zabbix agent active: Get /proc/diskstats: Block devices discovery)
        По данному правилу он определяет все диски в системе, но как то неправильно срабатывает алерт при 1% утилизации он шлет сообщения по почте, а нагрузки то нет.
        Пока сделал следующие, отключил и очистил шаблон и заново его подключил к узлу сети.
        Last edited by Narkolog; 10-12-2020, 12:50.

        Comment

        • Narkolog
          Junior Member
          • Nov 2020
          • 20

          #5
          Вчера пришел алерт по емаил. в очередной раз ошибочный, либо я делаю что то не так.

          Information started at 08:37:57 on 2020.12.11
          Information: sda: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)
          Host: HOSTNAME
          Severity: Warning
          Operational data: 13.5 ms, 24.06 ms
          Original problem ID: 539032

          Что интересно этот алерт срабатывает только на диск sda, на сколько понимаю это диск, на котором стоит система Centos 8. Подскажите пожалуйста, что может его так грузить, что выкидывает алерт? И как моно изменить выражение, чтобы он считал не 20 мс, а допустим большее число?

          Comment

          • Kos
            Senior Member
            Zabbix Certified SpecialistZabbix Certified Professional
            • Aug 2015
            • 3404

            #6
            Originally posted by Narkolog
            как моно изменить выражение, чтобы он считал не 20 мс, а допустим большее число?
            Чтобы сказать, как изменить, нужно знать, как оно у вас сейчас.
            Покажите, пожалуйста, выражение триггера. Не его название, а именно формулу.

            Comment

            • Narkolog
              Junior Member
              • Nov 2020
              • 20

              #7
              Вот выражение триггера:

              {hostname:vfs.dev.read.await[sda].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"sda"} or {hostname:vfs.dev.write.await[sda].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"sda"}

              А вот выражение из действия:

              Триггер равно hostname: sda: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)

              Comment

              • Narkolog
                Junior Member
                • Nov 2020
                • 20

                #8
                Насколько я понял, выражение вычисляют данные 20мс из следующих данных:

                cat /proc/diskstats
                8 0 sda 13166549 227302 904647912 180996117 37805427 43367301 979068605 880278518 0 256747114 1061244494

                Get /proc/diskstats: Block devices discovery

                Comment

                • Kos
                  Senior Member
                  Zabbix Certified SpecialistZabbix Certified Professional
                  • Aug 2015
                  • 3404

                  #9
                  Вот выражение триггера:
                  Ну вот, теперь чуть понятнее: проверяются минимальные за последние 15 минут значения параметров vfs.dev.read.await[sda] и vfs.dev.write.await[sda].
                  Здесь не видно, с каким интервалом эти данные снимаются, но, подозреваю, наверное, не больше, чем 15 минут, а скорее всего - меньше (раз в 5 минут или в минуту), так что за 15 минут набирается не одно, а несколько значений.

                  Однако, чуть раньше Вы писали:
                  Вчера пришел алерт по емаил. в очередной раз ошибочный, либо я делаю что то не так.

                  Information started at 08:37:57 on 2020.12.11
                  Information: sda: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)
                  Host: HOSTNAME
                  Severity: Warning
                  Operational data: 13.5 ms, 24.06 ms
                  Original problem ID: 539032
                  Судя по этому сообщению, срабатывает именно на второй из этих параметров (vfs.dev.write.await[sda]).
                  Непонятно, почему считаете, что это ложное срабатывание - если минимальное значение за 15 минут превышает 20 миллисекунд (в данном случае - 24.06 ms), то остальные значения ещё больше.

                  Другой вопрос, что для вашей аппаратной конфигурации это может быть нормально (например, если машина на старом "железе" или виртуалка).
                  Но тогда надо не ругать Zabbix, а подкрутить пороговые значения. Они специально заданы в шаблоне макросами, чтобы это было легко поправить на уровне отдельного хоста или конкретного устройства на нём.
                  Скажем, если нужно повысить пороговое значение только для устройства "sda", то на уровне хоста создаёте макрос с именем {$VFS.DEV.WRITE.AWAIT.WARN:"sda"} и прописываете ему соответствующее значение. Если же надо задать пороговое значение для всех устройств сразу, то достаточно на уровне хоста переопределить макрос с именем {$VFS.DEV.WRITE.AWAIT.WARN} (наверняка он определён на уровне шаблона, откуда-то ж берутся эти 20 миллисекунд). Подробнее о макросах можно почитать в документации, а также рекомендую почитать о макросах с контекстом.

                  Comment

                  • Narkolog
                    Junior Member
                    • Nov 2020
                    • 20

                    #10
                    Ни в коем случае не ругаю, просто хотелось подкрутить те значения о которых вы написали, Спасибо вам еще раз!

                    Comment

                    Working...