Различия в использовании функции rrdtool RRD PDP или консолидации RRA для вычисления среднего значения? - PullRequest
0 голосов
/ 18 марта 2019

Я обновляю базу данных rrdtool round-robin с интервалом в 1 минуту.Я хочу сохранить среднее значение пяти обновлений как одну запись RRA в rrdtool RRD.Один из способов сделать это выглядит следующим образом:

$ rrdtool create foo.rrd --start 1000000500 --step 60 \
> DS:ping:GAUGE:120:0:1000 RRA:AVERAGE:0.5:5:12; \
> rrdtool update foo.rrd 1000000560:10 1000000620:20 \
> 1000000680:30 1000000740:40 1000000800:50

Он накапливает пять показаний и сохраняет их среднее значение как запись в RRA.Тем не менее, можно добиться того же с этим:

$ rrdtool create bar.rrd --start 1000000500 --step 300 \
> DS:ping:GAUGE:600:0:1000 RRA:AVERAGE:0.5:1:12; \
> rrdtool update bar.rrd 1000000560:10 1000000620:20 \
> 1000000680:30 1000000740:40 1000000800:50

Как видно выше, step составляет 300 секунд, но, поскольку RPD PDP принимает значения между интервалами и вычисляет среднее, тогда оба примера сохраняют 30 ((10+20+30+40+50)/5) в RRA.Одно отличие, которое я могу сказать, состоит в том, что первый пример требует, по крайней мере, трех обновлений для сохранения записи в RRA, тогда как в случае второго примера достаточно одного обновления в течение 300 секунд.Есть ли другие отличия?

1 Ответ

1 голос
/ 19 марта 2019

Эти два примера на самом деле не одинаковы под обложками, хотя в некоторых случаях они могут выглядеть одинаково.

Во-первых, у вас есть шаг 60 с, и ваш RRA хранит в среднем 5 PDP в каждом CDP.

Во втором у вас есть шаг 300 с, и ваш RRA сохраняет каждый PDP как CDP.

Вот некоторые отличия:

  • В первом случае вам понадобится как минимум один образец (PDP) каждые 2 минуты; так три, чтобы покрыть каждый CDP в RRA. Во втором вам нужен один сэмпл на каждый CDP.
  • Во-первых, нормализация данных каждой выборки происходит в течение 60-секундного окна. Во втором случае это происходит через окно 300 с. Это заставит вещи выглядеть иначе, когда образцы прибывают нерегулярно.
  • Во-первых, у вас может быть до 120 секунд без данных, прежде чем вы получите Неизвестный; во втором - до 600 с.

Хотя результаты RRA во многом совпадают, выбор, который вы выберете, будет зависеть от характера ваших входящих данных (как часто вы получаете образцы, насколько они нерегулярны), а также от ваших требований к хранению и отображению (если вам нужно) более высокая степень детализации сохраняется или отображается). Первый вариант более точен, если у вас есть частые образцы; вторая - меньше памяти и меньше работы, но может пожертвовать некоторыми данными, если обновления выполняются чаще, чем шаг.

Обратите внимание, что если у вас есть другие типы RRA, кроме AVG, меньший шаг сделает вычисления более точными.

В целом, я бы порекомендовал установить шаг, близкий к ожидаемой средней частоте выборки, с настройкой задержки в соответствии с регулярностью данных. Настройте вашу поддержку RRA в зависимости от того, как вам нужно просматривать и отображать данные, и как долго вы должны хранить историю. Создайте RRA, соответствующие обычным сводкам отображения, чтобы минимизировать объем вычислений на лету.

...