Размер базы InfluxDB при длительной записи
· 2 min read
Замер: CM4 (RK3566), telegraf 1.28 → InfluxDB 2.7, датчик DL-303 по Modbus TCP, 5 значений (CO, CO2, влажность, температура, точка росы), опрос раз в 1 с, 23–25.10.2026.
Вывод
База не распухает. За счёт сжатия один опрос (5 значений) занимает ≈1.8 байта. Год непрерывной записи раз в секунду — ≈60 MB.
Измерено
| Сутки | Опросов | Файл на диске | На опрос |
|---|---|---|---|
| 23.10 | 33 196 | 62.7 KB | 1.9 B |
| 24.10 | 73 004 | 133.6 KB | 1.8 B |
Без сжатия это было бы ~16 байт на значение, т.е. в ≈40 раз больше.
Прогноз (опрос раз в 1 с, 5 значений)
| Период | Опросов | Размер |
|---|---|---|
| сутки | 86 400 | ≈ 160 KB |
| месяц | 2.6 млн | ≈ 5 MB |
| 90 дней | 7.8 млн | ≈ 14 MB |
| год | 31.5 млн | ≈ 58 MB |
К этому добавляется журнал текущих суток (до ~4 MB, сжимается каждую ночь) и служебные файлы (~0.3 MB). Без сжатия год занял бы ~2.5 GB.
Почему так мало
- Время идёт ровно через 1 с — хранится как «шаг 1 с × N», почти 0 байт на метку.
- Показания — целые числа, меняются медленно и часто повторяются: хранится только разница (0, ±1…), десятки разниц упаковываются в одно 8-байтовое слово, повторы — как «то же значение × N».
Когда будет больше
- Значения сильно «шумят» или дробные (float с меняющимися знаками) — сжатие хуже, но реалистично десятки, а не сотни MB в год.
- Больше датчиков/полей — размер растёт пропорционально.
- Сейчас у бакета хранение 90 дней — база сама держится на уровне ~15–18 MB. Чтобы хранить год, срок хранения бакета нужно увеличить.
Примечание
du --apparent-size показывает ~34 MB даже для пустой базы: InfluxDB заранее резервирует файлы индекса (8 × 4 MB). Реально на диске они почти ничего не занимают — смотреть надо du без --apparent-size.