Что лучше: БД в памяти или на SD карте?

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модераторы: Bagir, Ivan, Vit, immortal

Ответить
somik
Сообщения: 13
Зарегистрирован: Сб май 19, 2018 6:36 am
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Что лучше: БД в памяти или на SD карте?

Сообщение somik » Вс июл 08, 2018 7:56 pm

Изучая проблему периодического пропадания данных на моей Orange Pi PC c Majordomo выяснил, что оказывается БД живёт в памяти, и периодически (раз толи в час, толи в 15 мин, не знаю где посмотреть) дампится на SD-карту. Судя по форумам мотив такого "извращения" - экономия ресурса записи SD-карточки и надёжность хранения.
Основная нагрузка по записи приходится на таблицу phistory. В базу пишу параметры с двух электросчётчиков, каждую секунду. Размер базы увеличивается на 10 мб/неделю. (~60 кб/час)
Т.е. история с дампами не экономит ресурс на запись, а наоборот его расходует с катастрофической скоростью, в тысячи раз превосходящую нормальный режим работы. К тому же, видимо в момент дампирования уже крупной базы происходит зависание системы и крах данных.
Также запись непосредственно на карту памяти производит запись однократно на один сегмент, а дамп постоянно пишется в одно место, замещая старые дампы.

Предлагаю вернуть БД обратно на SD карту, а дампирование заменить на менее частый бэкап .

Кто знает как это сделать?
Chainik
Сообщения: 453
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 48 раз
Поблагодарили: 119 раз

Re: Что лучше: БД в памяти или на SD карте?

Сообщение Chainik » Вс июл 08, 2018 9:46 pm

[Сорри за оффтопик] Если в базу каждую секунду что-то пишется, почему бы не использовать старый добрый HDD. Да, это дороже, чем SD карта, да, более дорогая аппаратная платформа. Но это, при прочих равных, компенсируется большей производительностью, а главное, надежностью хранения данных.
Ну это как ИМХО. Еще раз прошу прощения за оффтоп.
За это сообщение автора Chainik поблагодарил:
somik (Пн июл 09, 2018 3:46 pm)
Рейтинг: 1.61%
fandaymon
Сообщения: 446
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 22 раза
Поблагодарили: 189 раз

Re: Что лучше: БД в памяти или на SD карте?

Сообщение fandaymon » Вс июл 08, 2018 11:25 pm

somik писал(а):
Вс июл 08, 2018 7:56 pm

Основная нагрузка по записи приходится на таблицу phistory. В базу пишу параметры с двух электросчётчиков, каждую секунду. Размер базы увеличивается на 10 мб/неделю. (~60 кб/час)
Т.е. история с дампами не экономит ресурс на запись, а наоборот его расходует с катастрофической скоростью, в тысячи раз превосходящую нормальный режим работы. К тому же, видимо в момент дампирования уже крупной базы происходит зависание системы и крах данных.
Логика какая-то странная.... Почему это дамп тратит ресурсы быстрее?! Ну пишет он мегов 200 раз в 15 минут. Ну допустим это даже будет 1 гиг в час. Ресурсы флешки израсходуются часов через 16 * 10000 ... Т.е. только этот дамп израсходует ресурс через 18 лет. Где катастрофа-то?!
А вот если все записи mysql пишет не в память, а сразу на флешку, то флешка вряд ли проработает больше пары месяцев
Другое дело - зачем хранить параметры с двух электросчётчиков, сделанные каждую секунду?!
AndrewS
Сообщения: 104
Зарегистрирован: Пт апр 15, 2016 10:18 am
Откуда: 21RU
Благодарил (а): 2 раза
Поблагодарили: 17 раз
Контактная информация:

Re: Что лучше: БД в памяти или на SD карте?

Сообщение AndrewS » Пн июл 09, 2018 6:21 am

Надо записывать не каждую секунду, а каждые 100Вт, например. Это классика хранения данных.
Предупредите, если за мной пора будет выехать.
ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
System load: 0.25 0.38 0.46 Up time: 3 days
Memory usage: 65 % of 2014MB CPU temp: 37°C
Orange Pi Plus 2 H3 Quad Core 1.6GHZ 2GB
Logrus
Сообщения: 898
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 160 раз
Поблагодарили: 105 раз

Re: Что лучше: БД в памяти или на SD карте?

Сообщение Logrus » Пн июл 09, 2018 10:47 am

выше про логику уже сказали, дополню, то в тлг много про "борьбу" написано мной в том числе, а зачем нет
при большом количестве запросов появляются траблы, большое 200 в сек., 100 это норма
убираю даже не напряжные, если они мне не нужны, зачем занимать тики цп и повышать его температуру и энергопотребление
аналогично с борьбой за размер бд и частотой ее записи, если все настроено и нет сбоев, это можно и уменьшить, сейчас в 4 и 6 раз частота, размер тоже существенно, собственно в конце суток перед работой оптимайзера не превышает 1 мб.
п.с. кста многие при бэкапе большой бд жаловались на траблы

п.п.с. а с "пропаданием" данных нужно разбираться, то куда-то не в ту степь
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо - ТАМ =>
connect Raspberry Pi3, с образа от Сергея 3.31, PHP 7
somik
Сообщения: 13
Зарегистрирован: Сб май 19, 2018 6:36 am
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Что лучше: БД в памяти или на SD карте?

Сообщение somik » Пн июл 09, 2018 3:46 pm

Физически запись на SD карту происходит при заполнении буфера записи, и обычно он не меньше чем размер блока на SD-карте, Если блок 512 байт, и данные поступают со скоростью 16 байт/секунду (60 кб/час), то физически запись будет осуществляться раз в 30 сек, и нагрузка на карту 1х кратная, и этот блок больше трогаться не будет. Если раз в 15 мин, то каждые 15 мин этот блок будет перезатираться.

округление до 100 вт не приемлемо из за задачи. в сети есть приборы меньшей мощности. Второй счётчик - на солнечной батареи - там вообще весь диапазон 200 вт. Вообщем сокращать объём данных - не приемлемо. На мой взгляд ресурсов Orange PI и 16 gb карты более чем достаточно, при правильных настройках, о которых я и спрашиваю
somik
Сообщения: 13
Зарегистрирован: Сб май 19, 2018 6:36 am
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Re: Что лучше: БД в памяти или на SD карте?

Сообщение somik » Пн июл 09, 2018 3:49 pm

Chainik писал(а):
Вс июл 08, 2018 9:46 pm
[Сорри за оффтопик] Если в базу каждую секунду что-то пишется, почему бы не использовать старый добрый HDD. Да, это дороже, чем SD карта, да, более дорогая аппаратная платформа. Но это, при прочих равных, компенсируется большей производительностью, а главное, надежностью хранения данных.
Ну это как ИМХО. Еще раз прошу прощения за оффтоп.
Читал на форумах как аргумент - в видеорегистраторах HD-видео поток пишется на SD-карту по кругу годами, и к поломке карты это не приводит.
А насчёт надёжности HDD - у меня за 10 лет в raid массиве вылетело 10 дисков. Вот вам и надёжность. Её нет у HDD. Да и тогда теряется прелесть мажордомо в размещении на маленьком дешёвом одноплатнике
Ответить