J'ai cherché partout sur Internet, y compris sur un certain nombre de forums StackExchange, une méthode efficace pour défragmenter un système de fichiers JFFS2 et je n'ai pas trouvé de réponse.
Le système en question est doté d'une partie flash NAND de 256 Mo. On y accède en tant que dispositif MTD divisé en trois partitions. La troisième partition est celle où le système de fichiers racine est stocké sous la forme d'un système de fichiers JFFS2. Le problème est que les écritures dans le système de fichiers racine ont des performances non déterministes en raison des problèmes habituels du ramasse-miettes JFFS2 qui décide de s'exécuter aux pires moments possibles. Lorsque cela se produit, le produit est bloqué pour une durée inconnue pendant que le ramasse-miettes (et pdflush) s'exécutent.
Il n'est pas possible de modifier le système de fichiers. La solution doit être quelque chose qui peut être exécuté pendant les heures creuses et qui, après avoir été exécuté, donne des performances d'écriture plus prévisibles. Je travaille actuellement sur un programme qui tentera de forcer le garbage collector à s'exécuter, puis de supprimer le fichier en espérant que tous les nœuds libérés seront soudainement plus facilement disponibles et que les écritures seront plus performantes.
Réflexions ?