Czy warto dostroić Ext4 do Noatime?


77

W poprzednich wersjach Ubuntu (korzystających z systemu plików Ext3) dostroiłem go, aby uzyskać lepszą wydajność z zauważalnymi wynikami, ustawiając noatimeparametr w /etc/fstab.

Czy nadal warto to robić w systemie plików Ext4, który jest teraz domyślny w Ubuntu? Jeśli tak, to czy procedura uległa zmianie?

Przykład takiego strojenia można znaleźć tutaj.

Odpowiedzi:


66

W systemie Ubuntu 10.04 relatimejest częścią domyślnych opcji montowania, chyba że zostanie zastąpione /etc/fstab. Poprzednie kilka wydań miało relatimewyraźnie /etc/fstab. relatimezapewnia taką samą szybkość (i oszczędność cyklu zapisu flash), co noatime, bez powodowania problemów staromodnym powiadamiającym pocztą.

Artykuł, który cytujesz, poleca data=writeback. Ubuntu domyślnie jest ustawione na data=ordered. Ustawienie Ubuntu jest wolniejsze w przypadku dużego obciążenia dysku, ale niesie znacznie mniejsze ryzyko utraty danych w przypadku awarii lub awarii zasilania. Dlatego nie zalecałbym zmiany z domyślnej wersji Ubuntu.

Zmiana commit=5na commit=100zwiększenie okna czasowego, w którym dane zostaną utracone w przypadku awarii, w większości przypadków bez korzyści.

Podsumowanie: pozostaw ustawienia bez zmian, zostały wybrane z jakiegoś powodu.


DODANE: Istnieją inne rzeczy poza opcjami montowania, które mogą mieć znaczenie. Zmiana z ext3na ext4sama jest często widoczną poprawą. Oto kilka dodatkowych wskazówek dla użytkowników laptopów.

  • Jeśli masz wolny dysk SSD, sprawdź ten wątek w SU . Ważne wskazówki są w użyciu tmpfsdla /tmpi dla pamięci podręcznej przeglądarki (a może historii).

  • Jeśli masz dysk twardy i chcesz, aby przestał się on obracać przez dłuższy czas, zainstaluj noflushd , który pozwala na spowolnienie dysku poprzez opóźnienie wszystkich zapisów do momentu zapełnienia pamięci RAM. (Oczywiście, odczyty mogą spowodować wirowanie dysku; będziesz chciał przyzwyczaić się do działania, cat /files/I/m/likely/to/need >/dev/nullzanim dysk się odwróci). Aby noflushd był skuteczny, wyłącz wszystkie swap i zamontuj systemy plików za pomocą czegoś podobnego commit=3600.

    Skuteczne korzystanie z noflushd oznacza, że ​​dane mogą pozostać niezapisane na dysku przez dłuższy czas. Jest to ryzyko, które należy porównać z korzyścią wynikającą z braku hałasu lub ciepła dochodzącego z dysku przez pewien czas. Nie używaj noflushd, jeśli nie czujesz się dobrze z tym ryzykiem.


Rozumiem niebezpieczeństwo takiego udoskonalenia, niektóre etapy tego samouczka, z którymi się nie zgadzam, tak comit=100jak wspomniałeś. Ale jestem gotów podjąć umiarkowane ryzyko, aby zwiększyć wydajność, ponieważ używam laptopa i (prawie) regularnie wykonuję kopie zapasowe.
Decio Lira,

2
@Decio: noatimevs atimemoże mieć widoczną różnicę, ale byłbym zaskoczony, że noatimevs relatimeby to zrobił. Do mojej odpowiedzi dodałem kilka wskazówek dotyczących laptopa; Osobiście zauważyłem widoczne ulepszenia tych wskazówek. Noflushd niesie ryzyko, które chciałem podjąć, gdy go użyłem.
Gilles,

Tak, po prostu googlowałem na temat różnic między noatime a relatime i masz rację. relatime (który jest teraz domyślny w Ubuntu) jest dobrym kompromisem między atime a noatime.
Decio Lira,

Czytałem o data=writeback- po prostu zapisuje dane pliku i metadane w losowej kolejności (w przeciwieństwie do orderedktórych zawsze zapisuje metadane po danych) . Oznacza to, że po przerwie w zasilaniu możesz znaleźć swój plik o długości bajtów α, gdzie faktycznie zapisano 0 bajtów. Cóż… Ale to absolutnie naturalne! Zawsze myślałem, że system plików najpierw zwiększa rozmiar pliku, a następnie zapisuje dane. Stwierdzenie, że może być w odwrotnej kolejności, wymaga przekształcenia tego wzorca, aby dodać buforowanie w pamięci RAM. Nie jestem przekonany, dlaczego nie używać, writebackjeśli może pomóc w poprawie opóźnień.
Hi-Angel,

17

Tak, nadal może mieć sens korzystanie noatimez wersji Ubuntu 12.10

relatimejest domyślną opcją montowania. I relatimejest znacznie lepszy niż atime. Pierwszy wymaga zapisu dla pierwszego odczytu po zapisie, drugi wymaga zapisu dla każdego odczytu. Ale z noatimekażdym odczytem jest wolny od zapisu.

Zasadniczo oznacza to, że liczba zapisów na dysku dla relatimemontowania jest prawie dwukrotnie większa w porównaniu z noatimemontowaniem innej rzeczy, która jest równa. Jest to poważny problem dla partycji na urządzeniach pamięci flash.

Szczegółowa dyskusja społeczności kernela Linuksa znajduje się na stronie http://kerneltrap.org/node/14148


3
Współczynnik dwa jest ogólnie niepoprawny. Teoretycznie współczynnik wynosi od 1 (nieskończenie często używany plik) do 2 (nieskończenie rzadko używany plik). Oznacza to, że prawdziwy czynnik wynosi w zasadzie 1, ponieważ rzadko czynniki bliskie 2 nie uwzględniają znacząco średniej.
Patrick Häcker

1 dotyczy plików tylko do zapisu. 2 jest dla wszystkich innych. Pliki tylko do zapisu nie mają sensu, ale mogą pojawiać się od czasu do czasu. Więc moje oryginalne oszacowanie powinno być odpowiednie.
yanychar

@yanychar: dzięki za wyjaśnienie relatimewady i dzielenie dyskusję kerneltrap, ale powiedzenie „ nie ma sensu w plikach tylko do zapisu ” jest nonsensem: wszystko /usri /libsą tylko do odczytu plików. W rzeczywistości większość drzewa, sans /homei /var, jest tylko do odczytu. Pliki /etcrównież zmieniają się bardzo rzadko.
MestreLion,

2
@MestreLion: Ubuntu instaluje mnóstwo pakietów. Od czasu do czasu pakiety są aktualizowane. Jeśli nie było odczytów pliku między momentem instalacji i aktualizacji pakietu, plik był „tylko do zapisu”. Brak dodatkowych zapisów w relatimeporównaniu do noatimepliku. Dla całej reszty istnieje dodatkowy zapis podczas odczytu pliku.
yanychar
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.