2

Я искал по всему Интернету, в том числе на нескольких форумах StackExchange, работающий метод дефрагментации файловой системы JFFS2 и не могу найти ответ.

В рассматриваемой системе имеется флэш-часть NAND объемом 256 МБ. Доступ к нему осуществляется как устройство MTD, которое разделено на три раздела. Третий раздел - это место, где корневая файловая система хранится как файловая система JFFS2. Проблема заключается в том, что записи в корневую файловую систему имеют недетерминированную производительность из-за обычных проблем с сборщиком мусора JFFS2, решающим запускаться в худшие возможные времена. Когда это происходит, продукт зависает на некоторое неизвестное время, пока работает сборщик мусора (и pdflush).

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

Мысли?

1 ответ1

1

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

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

Сложность состоит в том, как открыть файл с несколькими фрагментами в файловой системе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .