Изучая проблему периодического пропадания данных на моей Orange Pi PC c Majordomo выяснил, что оказывается БД живёт в памяти, и периодически (раз толи в час, толи в 15 мин, не знаю где посмотреть) дампится на SD-карту. Судя по форумам мотив такого "извращения" - экономия ресурса записи SD-карточки и надёжность хранения.
Основная нагрузка по записи приходится на таблицу phistory. В базу пишу параметры с двух электросчётчиков, каждую секунду. Размер базы увеличивается на 10 мб/неделю. (~60 кб/час)
Т.е. история с дампами не экономит ресурс на запись, а наоборот его расходует с катастрофической скоростью, в тысячи раз превосходящую нормальный режим работы. К тому же, видимо в момент дампирования уже крупной базы происходит зависание системы и крах данных.
Также запись непосредственно на карту памяти производит запись однократно на один сегмент, а дамп постоянно пишется в одно место, замещая старые дампы.
Предлагаю вернуть БД обратно на SD карту, а дампирование заменить на менее частый бэкап .
Кто знает как это сделать?
Что лучше: БД в памяти или на SD карте?
Модератор: immortal
-
- Сообщения: 1463
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Что лучше: БД в памяти или на SD карте?
[Сорри за оффтопик] Если в базу каждую секунду что-то пишется, почему бы не использовать старый добрый HDD. Да, это дороже, чем SD карта, да, более дорогая аппаратная платформа. Но это, при прочих равных, компенсируется большей производительностью, а главное, надежностью хранения данных.
Ну это как ИМХО. Еще раз прошу прощения за оффтоп.
Ну это как ИМХО. Еще раз прошу прощения за оффтоп.
- Рейтинг: 1.16%
-
- Сообщения: 1555
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Что лучше: БД в памяти или на SD карте?
Логика какая-то странная.... Почему это дамп тратит ресурсы быстрее?! Ну пишет он мегов 200 раз в 15 минут. Ну допустим это даже будет 1 гиг в час. Ресурсы флешки израсходуются часов через 16 * 10000 ... Т.е. только этот дамп израсходует ресурс через 18 лет. Где катастрофа-то?!somik писал(а): ↑Вс июл 08, 2018 7:56 pm
Основная нагрузка по записи приходится на таблицу phistory. В базу пишу параметры с двух электросчётчиков, каждую секунду. Размер базы увеличивается на 10 мб/неделю. (~60 кб/час)
Т.е. история с дампами не экономит ресурс на запись, а наоборот его расходует с катастрофической скоростью, в тысячи раз превосходящую нормальный режим работы. К тому же, видимо в момент дампирования уже крупной базы происходит зависание системы и крах данных.
А вот если все записи mysql пишет не в память, а сразу на флешку, то флешка вряд ли проработает больше пары месяцев
Другое дело - зачем хранить параметры с двух электросчётчиков, сделанные каждую секунду?!
-
- Сообщения: 123
- Зарегистрирован: Пт апр 15, 2016 10:18 am
- Откуда: 21RU
- Благодарил (а): 5 раз
- Поблагодарили: 20 раз
- Контактная информация:
Re: Что лучше: БД в памяти или на SD карте?
Надо записывать не каждую секунду, а каждые 100Вт, например. Это классика хранения данных.
Слабость - велика, а сила - ничтожна.
ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
System load: 2.03 1.85 1.78 Up time: 23 days
Memory usage: 65 % of 2014MB CPU temp: 37°C
Orange Pi Plus 2 H3 Quad Core 1.6GHZ 2GB
ARMBIAN 5.38 stable Debian GNU/Linux 9 (stretch) 4.14.18-sunxi
System load: 2.03 1.85 1.78 Up time: 23 days
Memory usage: 65 % of 2014MB CPU temp: 37°C
Orange Pi Plus 2 H3 Quad Core 1.6GHZ 2GB
-
- Сообщения: 2086
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 458 раз
Re: Что лучше: БД в памяти или на SD карте?
выше про логику уже сказали, дополню, то в тлг много про "борьбу" написано мной в том числе, а зачем нет
при большом количестве запросов появляются траблы, большое 200 в сек., 100 это норма
убираю даже не напряжные, если они мне не нужны, зачем занимать тики цп и повышать его температуру и энергопотребление
аналогично с борьбой за размер бд и частотой ее записи, если все настроено и нет сбоев, это можно и уменьшить, сейчас в 4 и 6 раз частота, размер тоже существенно, собственно в конце суток перед работой оптимайзера не превышает 1 мб.
п.с. кста многие при бэкапе большой бд жаловались на траблы
п.п.с. а с "пропаданием" данных нужно разбираться, то куда-то не в ту степь
при большом количестве запросов появляются траблы, большое 200 в сек., 100 это норма
убираю даже не напряжные, если они мне не нужны, зачем занимать тики цп и повышать его температуру и энергопотребление
аналогично с борьбой за размер бд и частотой ее записи, если все настроено и нет сбоев, это можно и уменьшить, сейчас в 4 и 6 раз частота, размер тоже существенно, собственно в конце суток перед работой оптимайзера не превышает 1 мб.
п.с. кста многие при бэкапе большой бд жаловались на траблы
п.п.с. а с "пропаданием" данных нужно разбираться, то куда-то не в ту степь
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 13
- Зарегистрирован: Сб май 19, 2018 6:36 am
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Re: Что лучше: БД в памяти или на SD карте?
Физически запись на SD карту происходит при заполнении буфера записи, и обычно он не меньше чем размер блока на SD-карте, Если блок 512 байт, и данные поступают со скоростью 16 байт/секунду (60 кб/час), то физически запись будет осуществляться раз в 30 сек, и нагрузка на карту 1х кратная, и этот блок больше трогаться не будет. Если раз в 15 мин, то каждые 15 мин этот блок будет перезатираться.
округление до 100 вт не приемлемо из за задачи. в сети есть приборы меньшей мощности. Второй счётчик - на солнечной батареи - там вообще весь диапазон 200 вт. Вообщем сокращать объём данных - не приемлемо. На мой взгляд ресурсов Orange PI и 16 gb карты более чем достаточно, при правильных настройках, о которых я и спрашиваю
округление до 100 вт не приемлемо из за задачи. в сети есть приборы меньшей мощности. Второй счётчик - на солнечной батареи - там вообще весь диапазон 200 вт. Вообщем сокращать объём данных - не приемлемо. На мой взгляд ресурсов Orange PI и 16 gb карты более чем достаточно, при правильных настройках, о которых я и спрашиваю
-
- Сообщения: 13
- Зарегистрирован: Сб май 19, 2018 6:36 am
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Re: Что лучше: БД в памяти или на SD карте?
Читал на форумах как аргумент - в видеорегистраторах HD-видео поток пишется на SD-карту по кругу годами, и к поломке карты это не приводит.Chainik писал(а): ↑Вс июл 08, 2018 9:46 pm[Сорри за оффтопик] Если в базу каждую секунду что-то пишется, почему бы не использовать старый добрый HDD. Да, это дороже, чем SD карта, да, более дорогая аппаратная платформа. Но это, при прочих равных, компенсируется большей производительностью, а главное, надежностью хранения данных.
Ну это как ИМХО. Еще раз прошу прощения за оффтоп.
А насчёт надёжности HDD - у меня за 10 лет в raid массиве вылетело 10 дисков. Вот вам и надёжность. Её нет у HDD. Да и тогда теряется прелесть мажордомо в размещении на маленьком дешёвом одноплатнике
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 400 раз
- Контактная информация:
Re: Что лучше: БД в памяти или на SD карте?
проблема периодического пропадания данных происходит из-за восстановления более раннего бэкапа, это из за того что система загружаясь поздно получает текущее время, проблема решается установкой часов реального времени на шину i2csomik писал(а): ↑Вс июл 08, 2018 7:56 pmИзучая проблему периодического пропадания данных на моей Orange Pi PC c Majordomo выяснил, что оказывается БД живёт в памяти, и периодически (раз толи в час, толи в 15 мин, не знаю где посмотреть) дампится на SD-карту. Судя по форумам мотив такого "извращения" - экономия ресурса записи SD-карточки и надёжность хранения.
Основная нагрузка по записи приходится на таблицу phistory. В базу пишу параметры с двух электросчётчиков, каждую секунду. Размер базы увеличивается на 10 мб/неделю. (~60 кб/час)
Т.е. история с дампами не экономит ресурс на запись, а наоборот его расходует с катастрофической скоростью, в тысячи раз превосходящую нормальный режим работы. К тому же, видимо в момент дампирования уже крупной базы происходит зависание системы и крах данных.
Также запись непосредственно на карту памяти производит запись однократно на один сегмент, а дамп постоянно пишется в одно место, замещая старые дампы.
Предлагаю вернуть БД обратно на SD карту, а дампирование заменить на менее частый бэкап .
Кто знает как это сделать?
вернуть обратно базу на карту памяти можно отключив /etc/init.d/prepare-dirs и изменив путь к базе в конфиге mysql
у меня карты с базой мд прожили самое долгое пол года, в режиме tmpfs с сентября 2016 самое долгое пока работает.
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru