Могу ли я использовать флэш-память Nand в качестве встроенной памяти во встроенном Linux?

2

У меня в одном из моих продуктов 128 МБ ОЗУ, чего было достаточно, когда мы выпустили первую версию продукта. Но теперь мы добавили в него некоторые дополнительные функции, так что этот большой Ram может вызвать проблемы с OOM.

У меня 64 МБ флэш-памяти, из которых более 50% не используется. Могу ли я использовать оставшуюся память в качестве подкачки?

Мы используем ядро ​​Linux версии 3.4.56 в этом продукте.

Заранее спасибо за ваши предложения.

nyk_mat
источник

Ответы:

2

Если флэш-память поддерживает выравнивание износа (будет зависеть), то замена может быть жизнеспособной, это зависит от того, как долго вы хотите, чтобы эти устройства прослужили. Существуют и другие факторы - то, на что рассчитана флэш-память с точки зрения записи, как долго она использовалась до сих пор, насколько она активна с точки зрения записи.

Выравнивание износа - это процесс, в котором контроллер постоянно подсчитывает, сколько раз была записана каждая ячейка, и пытается сохранить данные таким образом, чтобы все ячейки имели одинаковую запись в них.

При том, что это прекрасно работает, и устройство, рассчитанное на 100 000 операций записи (например), говорит, что некоторые очень грубые математические расчеты говорят о том, что вы можете ожидать жизни чуть более 2,5 лет при идеальном износе и 10 МБ / с. Реально вы, вероятно, не увидите идеальный износ, но вы также, вероятно, не увидите этот уровень постоянного письма.

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

Таким образом, вы можете использовать ваше флэш-устройство для замены, но зависит от того, следует ли вам это делать, и зависит от того, как долго эти устройства будут жизнеспособными.

Еще одно замечание: скорость для случайных записей на этом устройстве, как правило, будет МЕДЛЕННОЙ, поэтому вы увидите огромное снижение производительности при нажатии на флэш-своп при настройке. Вы избежите ситуаций с OOM, но это может быть так же плохо, если все замедлится, поэтому определенное тестирование необходимо, чтобы увидеть, стоит ли оно того.

Адам С
источник
1

Linux не волнует, на каком блочном устройстве живет своп. Используя swaponкоманду из оболочки, вы можете поместить ее где угодно.

Это может быть раздел жесткого диска sda1, sda2и т.д., устройство ISCSI, зашифрованное или LVM'ed устройство в /dev/mapper, или mtdblockустройстве.

Если ваша флэш-память уже отформатирована, вы можете использовать файл подкачки вместо блочного устройства.

LawrenceC
источник
Спасибо Адаму и ультрасоволу за ваш быстрый ответ. Позже я прошел через ограничения использования флэш-памяти как подкачки, а также нашел интересный параметр в / proc / meminfo, то есть неактивную память. Мой текущий системный статус показывает 8 МБ свободной памяти, но когда я вручную освобождаю неактивную память, он показывает около 50 МБ свободной памяти. Поэтому сейчас я ищу способ, которым система может очистить неактивную память сама. Так что моя проблема с памятью будет легко решена.
nyk_mat