Jak właściwie defragmentować system plików JFFS2


2

Szukałem w całym Internecie, w tym na wielu forach StackExchange, praktycznej metody defragmentacji systemu plików JFFS2 i nie mogę znaleźć odpowiedzi.

System ma 256 MB pamięci flash NAND. Jest dostępny jako urządzenie MTD, które jest podzielone na trzy partycje. Trzecia partycja to miejsce, w którym główny system plików jest przechowywany jako system plików JFFS2. Problem polega na tym, że zapisy w głównym systemie plików mają wydajność niedeterministyczną ze względu na zwykłe problemy z czyszczeniem JFFS2, które decyduje o uruchomieniu w najgorszym możliwym czasie. Gdy tak się stanie, produkt jest zawieszony na pewien nieznany czas, podczas gdy garbage collector (i pdflush) działają.

Zmiana systemu plików nie wchodzi w grę. Rozwiązaniem musi być coś, co może działać poza godzinami pracy, a po uruchomieniu skutkuje bardziej przewidywalną wydajnością zapisu. Obecnie pracuję nad programem, który będzie próbował wymusić uruchomienie garbage collectora, a następnie usunąć plik z nadzieją, że wszystkie uwolnione węzły będą nagle łatwiej dostępne i sprawią, że zapisy będą lepsze.

Myśli?

Odpowiedzi:


1

Spróbuj zaimplementować własny algorytm zbierania śmieci i spróbuj uruchomić go w czasie montowania, a gdy zabraknie miejsca do zapisu, uruchom ponownie wątek zbierania śmieci oddzielnie.

Będzie o wiele łatwiej, jeśli napiszesz swoje pliki jako fragmenty, aby po wymazaniu bloku lub strony z połową pliku znajdującego się w nim, nadal możesz go zapisać gdzieś i pobrać stronę do wykorzystania w przyszłości.

Podstępną częścią jest sposób otwarcia pliku z wieloma fragmentami w całym systemie plików.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.