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?
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.
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.
comit=100
jak wspomniałeś. Ale jestem gotów podjąć umiarkowane ryzyko, aby zwiększyć wydajność, ponieważ używam laptopa i (prawie) regularnie wykonuję kopie zapasowe.noatime
vsatime
może mieć widoczną różnicę, ale byłbym zaskoczony, żenoatime
vsrelatime
by 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.data=writeback
- po prostu zapisuje dane pliku i metadane w losowej kolejności (w przeciwieństwie doordered
któ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ć,writeback
jeśli może pomóc w poprawie opóźnień.Tak, nadal może mieć sens korzystanie
noatime
z wersji Ubuntu 12.10relatime
jest domyślną opcją montowania. Irelatime
jest znacznie lepszy niżatime
. Pierwszy wymaga zapisu dla pierwszego odczytu po zapisie, drugi wymaga zapisu dla każdego odczytu. Ale znoatime
każdym odczytem jest wolny od zapisu.Zasadniczo oznacza to, że liczba zapisów na dysku dla
relatime
montowania jest prawie dwukrotnie większa w porównaniu znoatime
montowaniem 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
źródło
relatime
wady i dzielenie dyskusję kerneltrap, ale powiedzenie „ nie ma sensu w plikach tylko do zapisu ” jest nonsensem: wszystko/usr
i/lib
są tylko do odczytu plików. W rzeczywistości większość drzewa, sans/home
i/var
, jest tylko do odczytu. Pliki/etc
również zmieniają się bardzo rzadko.relatime
porównaniu donoatime
pliku. Dla całej reszty istnieje dodatkowy zapis podczas odczytu pliku.