influenxDB - Ram постепенно увеличивается до максимума - PullRequest
0 голосов
/ 07 апреля 2020

В настоящее время Infliff использует очень много оперативной памяти и вызывает сбой притока.

Таким образом, мы используем InfxDB для хранения данных, к которым затем можно получить доступ через графану. За одно измерение мы отслеживаем около 17 000 устройств, каждое устройство имеет около 10 тегов, данные отправляются каждые 2 минуты для представления в виде графика временных рядов и таблиц и т. Д. c.

С графаной мы группируем интервал времени $ __, а также имя устройства или тег. Интервал составляет 120 с.

Мы используем внешнюю виртуальную машину, которая имеет 32 ГБ оперативной памяти и жесткий диск емкостью 230 ГБ, 8-ядерный vCpu. (Я не думаю, что технические характеристики оборудования являются большой проблемой).

Мы переместили приток притока в режим TSI, который останавливает приращение индекса притока в оперативную память. Я думал, что это остановит нашу проблему с оперативной памятью, но, похоже, просто отложило ее ...

Сейчас. Я не хочу винить в этом приманку, я уверен, что она делает все, что делает правильно, и я просто неправильно ее использую. Ниже показано, как я отправляю данные в приток:

Код находится в python, и мы используем модуль infxdb.

def makeGrafanaValues(measurementName="",tagValues="", databaseName="scripthub_testing",send=False):
    global dev_Payload
    if send:
        influxDBCalls.sendPreformatedList(dev_Payload,databaseName)
    else:
        #tags = makeTagsDict(tagValues)
        dev_Payload.append(
            {
                "measurement": measurementName,
                "tags": dict(tagValues), # this contains about 10tags per device, approx 17k devices
                "time": scriptRunTime,
                "fields": {
                    "value": 1
                    }
            })

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

Редактировать: Просто чтобы прокомментировать, запись данных в приток вообще не увеличивает оперативную память, это только когда мы читаем эту информацию из притока в графане.

Кроме того, большинство из этих тегов меняются с течением времени, поэтому важно, чтобы мы могли группировать их, насколько я знаю, мы не можем перечислить их как поля, поскольку мы не можем сгруппировать их.

...