альтернатива инструмента rrd для большого объема

Самый простой способ без использования потоков, таймеров и т. Д. - это взять текущее время при вызове метода и сохранить его. При следующем звонке вы сравниваете новое текущее время со старым. Если 5 секунд не прошло, ничего не делайте.

, например,

long lastCall = 0;
void doSomething()
{
    long now = secondsSinceEpoch();
    if (lastCall == 0 || now-lastCall > 5)
    {
        // Do stuff
        // lastCall = now
    }
}
7
задан tsuna 2 February 2013 в 09:18
поделиться

2 ответа

Если производительность ввода-вывода является основной проблемой, вам нужно изучить что-то вроде rrdcached , которое доступно в текущей версии ( 1.4) из RRDTools.

Накладные расходы ввода-вывода не зависят от записываемых данных, ведь каждое значение 8 байт на источник данных. Пропускная способность ввода-вывода обусловлена ​​тем, что перед записью необходимо прочитать целый сектор (обычно 4 КБ). Внезапно для записи 8 байтов вы прочитали / записали 8 Кбайт.

rrdcached объединяет все эти записи вместе, поэтому при обновлении RRD отношение полезных данных (фактических значений DS) к потерянным данным (резервным байтам в секторе) уменьшается.

Все RRDTools будут автоматически работать с rrdcached, если обнаружат его работу (через переменную окружения). Это позволяет им при необходимости запускать сбросы, например, при создании графика из данных.

Переход на решение на основе SQL может помочь рассмотреть вопрос о дополнительных операциях ввода-вывода, которые потребуются для поддержки SQL.Учитывая, что вы не склонны использовать данные RRD в такой схеме произвольного доступа, база данных - это своего рода кувалда для решения проблемы. Придерживаясь RRDTool, вы сохраните доступ ко всей экосистеме инструментов, которые понимают файлы и могут работать с ними, что полезно, особенно если вы уже знакомы с ними.

4
ответ дан 6 December 2019 в 21:20
поделиться

Мой друг сделал некоторую работу только что над бэкендом SQL, чтобы хранить круговые данные: http://rrs.decibel.org

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

2
ответ дан 6 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: