Помогите примерно рассчитать срок жизни флешки в качестве системного диска OpenWRT на MR-3020. Девайс собирает данные с 2 источников, пишет в текстовый файл( 300 Б) и загружает xml файл( 4,5 кБ), потом данные загружаются в SQLite базу, с интервалом 5 мин круглосуточно. Флешка USB 8Гб. Исходя из объема без перезаписи флешки должно хватить лет на 8. Проблема в циклах перезаписи.
1. Хотелось бы выяснить сколько времени проживет флешка при таких условиях.
2. Что влияет на срок жизни флешки - писать в один файл или разные; буферизовать данные и писать одной операцией или построчно; тип флешки (usb, sd class 4, 6, 10 и т.д); писать в СУБД по 1 записи или транзакцией?
Проблема не в циклах перезаписи. Их хватит гарантированно.
Проблема в том что контроллер на флешке тупой как пробка, и циклы эти использует очень не экономно.
А так же этот контроллер имеет привычку выходить из строя по самым разным причинам, и что хуже - вообще без причины.
А контроллеры на всех флешках разные, и отличаются от модели к модели. Поэтому как то обсуждать, анализировать и строить планы не имеет особого смысла.
По поводу оптимизации - думаю стоит буферизировать и писать более крупными кусками.
Один или несколько файлов- вообще без разницы.
Понятно, что 100% гарантии никто не даст, всегда есть риск выхода из строя контроллера, но я просто хочу прикинуть среднее время жизни такого девайса, стоит ли затевать, т.к. количество будет более 100, если в среднем 10% выйдет из строя в течении года - это терпимо, а если 90% - плохо и потребуется искать другое решение.
Насколько я понимаю, циклы перезаписи распространяются на каждую ячейку и основная причина выхода из строя в том, что контроллер затирает несколько ячеек до предела. А учитывая исходные данные, файлы будут накапливаться и новые файлы будут занимать новые ячейки, в идеале 1 цикл перезаписи для каждой ячейки закончится через 8 лет. Вопрос только с SQLite, при добавлении записей файл СУБД дописывается или переписывается полностью?
Насколько я понял тут диск используется только для скачивания файлов сумарно меньше 1 Мб и льются в базу. В таком случае можно эту схему сделать "бессмертной", SQL сервер нужно поднять в облаке, при таких "нагрузках" не думаю что за него придется платить чаще чем раз в пару лет. Файл либо не скачивать на диск совсем, благо файл в памяти никто не отменял, либо если изменить алгоритм нельзя\влом можно поднять RAM диск и писать файлы в него, тем самым не трогать флешку совсем.
От записи файлов не откажешься, а за идею виртуального диска огромное спасибо, можно писать на виртуальный диск, а раз в час/два копировать на флешку. С облаками проблема, доступа к Интернету прямого нет, из-за этого система и собирается, она буферизует данные, а потом копии по длинному маршруту отдает на сервер.