przystajnik

Pędź dysku mój, pędź

Czy kogoś trzeba przekonywać, że posiadanie szybkiego i sprawnego dysku bardzo umila korzystanie z komputera i systemu operacyjnego ? Pewnie nie, bo o tym każdy wie. Czy to Windows, czy to Linux, w dobrym tonie leży prawidłowe ustawienia parametrów posiadanego napędu – a to włączone DMA, czytanie z wyprzedzeniem, cache dla zapisu, właściwy tryb UDMA itp. Czy jednak poza wyciskaniem siódmych potów z samej elektroniki można coś więcej zrobić dla sprawności dostępu do danych na dysku?

A co powiecie na wyciśnięcie odrobiny potu z samego systemu plików ? Mówię o popędzaniu starego dobrego ext3 i każdego innego systemu korzystającego z journaling’u.

Koncepcja jest następująca. Zmienimy nieco parametry montowania dysków/partycji, wykorzystując swoją całą wiedzę nt. parametrów polecenia mount. Podobnie, zmienimy parametry kronikowania księgowania dla wybranych partycji/dysków za pomocą polecenia tune2fs.

Co tracimy kosztem zwiększonej prędkości i wydajności zapisywania/odczytywania/dostępu do danych ?
– parametr noatime w /etc/fstab – nie będzie można wyszukiwać plików wg. daty/czasu dostępu do pliku (dostępu, nie zapisu/modyfikacji)
– parametr nodiratime w /etc/fstab – jak wyżej, tylko dla katalogów
kronikowanie księgowanie w trybie writeback – w przypadku awarii zachowana zostanie spójność systemu plików, lecz w plikach zapisywanych w momencie awarii na końcu mogą się pojawić losowe dane
– opcja dir_index dla systemu plików – same plusy

Na początek zajmijmy się plikiem /etc/fstab. Zróbmy jego kopię (użytkownicy Debiana pogradliwie prychając opuszczają polecenie sudo) – wszystko robimy rzecz jasna w konsoli :

sudo cp /etc/fstab /etc/fstab_bak

Teraz otwórzmy go do edycji swoim ulubiony edytorem czy to tekstowym czy graficznym :

sudo gedit /etc/fstab

Robimy poprawki – dla każdego dysku/partycji którą montujemy dodajemy parametry :

noatime,nodiratime,data=writeback

… czyli wpis dla np. /dev/hda5 nabiera takiej formy :

/dev/hda5 /home ext3 defaults,noatime,nodiratime,data=writeback 0 2

… lub :
# /dev/hda5 :
UUID=4abffdd1-b652-4091-b6a8-81c97f8f8f76 / home ext3 defaults,noatime,nodiratime,data=writeback 0 2

Robimy poprawki tylko dla dysków twardych (żadne tam cdrom’y i urządzenia wymienialne), oraz zastanawiamy się, czy na pewno chcemy takie parametry ustawić dla partycji / (root).

Jeżeli ustaliliśmy parametr data=writeback dla partycji /, musimy wykonać poprawkę w /boot/grub/menu.lst.

sudo gedit /boot/grub/menu.lst

W linii z opcjami dla kernela, dopisujemy rootflags=data=writeback :

kernel /boot/vmlinuz-2.6.22-1-686 root=/dev/hda1 rootflags=data=writeback ro

(nie przeklejać tej linijki, tylko wstawić parametr w swoim menu.lst w podobny sposób jak powyżej!)

Ważne ! Teraz uaktualnimy kronikę każdej partycji dla której wybraliśmy tryb writeback :

sudo tune2fs -o journal_data_writeback /dev/hda5

Powtarzamy polecenie, zmieniając tylko /dev/hda5 na numery partycji z /etc/fstab.

Dla wszystkich partycji z kroniką można jeszcze włączyć (jeżeli nie jest włączona) opcję dir_index – usprawni to wyświetlanie/przeszukiwanie katalogów z dużą liczbą plików (nie dotyczy to oczywiście generowania miniaturek w tych katalogach) :

sudo tune2fs -O dir_index /dev/hda5

I kolejne udogodnienie, jeżeli kogoś denerwuje częstotliwość sprawdzania dysku podczas startu systemu – ustawimy, aby sprawdzany był nie co 30-ści montowań, lecz co 100 :

sudo tune2fs -c 100

UWAGA – przy wpisywaniu poleceń w konsoli, proszę zwracać uwagę, czy wykonanie danego polecenia nie pokaże jakiegoś błędu – nie wklejać na ślepo wszystkich komend! W przypadku błędu trzeba ustalić o co komputerowi chodzi i poprawić się.

Po wprowadzonych zmianach resetujemy system – konieczne, ze względu na zmianę trybu kronikowania księgowania.

Czy wprowadzone zmiany są rewolucyjne ? Bardziej odczują to osoby z wolniejszymi dyskami. O ile w ogóle – generalnie ciężko przełożyć wzrost wydajności na konkretne cyferki – ma po prostu być nieco sprawniej i szybciej. Testy hdparm’em tego nie pokażą, zainteresowani mogą próbować wykonywać benchmarki za pomocą bonie++.

Post navigation

  • Bardzo, bardzo, ale to bardzo dobry tutek! Sam chciałem swego czasu opisać tune2fs, jednak jakoś nie starczyło czasu. Większość z opcji które proponujesz „uspokoi” dysk i sprawi, że będzie o wiele bardziej responsywny. Super!

  • czy przypadkiem nodiratime nie zawiera sie w noatime?

  • LordD

    Łeee… zrobiłem wszystko tak jak było napisane, ale np. „sudo tune2fs -o journal_data_writeback /dev/hda1” mi mówi, że nie ma takiego dysku, mimo, że fstab hda1 jest. Poza tym jak dodałem do „/boot/grub/menu.lst” podane parametry to w ogóle system mi się nie chciał wystartować.

  • @yoshi314

    Masz oczywiście rację, choć nigdzie nie jest to wprost napisane 🙂 Ale jedno drugiemu nie przeszkadza …

    @LordD

    ‚sudo fdisk -l’ prawdę ci o dysku powie 🙂 Zmiana kronikowania (parametr writeback) bez wygenerowania poprawnej nowej kroniki (błąd przy komendzie tune2fs -o journal_data_writeback) może owocować niemożnością wstania systemu.

  • LordD

    Hmm… w fstab mam hda a „sudo fdisk -l” wyrzuca mi, że mam sda. Nie wiem o co chodzi?!

  • lukas

    LorD, nie pomyliłeś czasami nazwy dysku z katalogiem gdzie montowany jest dysk ; ]. Trochę się ostatnio pozmieniało i zamiast /dev/sda jest UUID.

  • RA

    No i najważniejsze „…tune2fs only works for ext3”

  • LordD

    LUKAS! No właśnie… chyba masz rację… mam więc użyć owego UUID zamiast ścieżki do punktu montowania?

  • @LordD

    A próbowałeś zamiast /dev/hdaX podawać numery partycji podane przez ‚fdisk l’ ? Czyli /dev/sdaX.

  • Jedno ale – proponuje nie używać writeback.

  • rjc

    Mała uwaga co do „kronikowania”.

    nie wiem czy autor również nie lubi bezmyślnego spolszczania wyrażeń z języka angielskiego, ale „kronikowanie” to lekka przesada. Wyraz taki w języku polskim nie występuje, bardziej poprawnym było by „dziennikowanie” – „journal” to „dziennik”, „chronicle” to „kronika”; takiego wyrazu jednak również nie ma. Pomijam zupełnie kwęstię ich brzmienia.

    Trzymajmy się raczej, przyjętego już, „księgowania”.

  • @rjc
    Księgowanie, tego słowa szukałem 🙂

    @mkkp
    Jak zawsze są argumenty za (szybkość) i przeciw (w przypadku gwałtownej awarii możliwość pojawienia się losowych danych na końcu zapisywanych plików). Każdy może rozważyć za i przeciw, oraz określić dla których partycji ten tryb mu odpowiada.

  • dir_index zadziała dla nowych katalogów, stare trzeba sobie przebudować przez e2fsck -D

  • zibi

    Panowie,
    zdumiewające jest to Wasze masturbowanie sie pierdołami, które nawet sam auto ocenia jako wątpliwie efektywne.
    W Windowsie, nawet jesli ktoś stworzył by tweaker dysku to skladał by się on z jednego guzika.
    Zamiast więc niemal seksualnej ekstazy z powodu bzdeta zajmijcie się moze lepiej: drukarkami, skanerami, aparatami foto, kartami graficznymi i tym podobnymi rzeczami interesującymi MILIONY ludzi, a nie zadufanych w sobie linuxowych mastahów.

    Jesteście po prostu smieszni.
    Bawcie się tak dalej, a efekty bedziecie mieć takie jak teraz – niemal zerowe.

    Śmiech warte.

  • Piotr

    @zibi
    Tak jest Panie Bill Gates.

  • kewys

    zibi ty jestes smiechu warty…

    No wlasnie w wingrozie jezeli istnieje jakas aplikacja to niewiele mozesz za pomoca jej zrobic poza tym co autor przewidzial, czyli zazwyczaj maly zakres mozliwosci…
    Tu kazdy sobie moze dostosowac wszystko tak jak chce, moze wylaczyc zbedne pierdoly z ktorych niekorzysta i przy tym uzyskac lepsza wydajnosc…
    Tak cie irytuje widac to ze jestes ograniczany przez Billa…
    Idz przyciskac przyciski w swoim super systemie dla ludzi nieswiadomych jak dziala system operacyjny…

    pozdro

  • wroobel

    Panie „mastahu” zibi, drukarkę posiadam (Lexmark) i… działa (no popatrz). Skanera nie posiadam. Aparat fotograficzny (Fuji s5500)… działa, tak jak aparat telefoniczny (SE K750i) – zaskoczony, co? Karta graficzna (by Nvidia), zastanówmy się… śmiga bez problemu. Pozwól więc, że jeżeli mam chęci, możliwości i wiedzę, aby się czymś (w tym przypadku dyskiem) pomast… ekhm, „pobawić”, to będę to robił, kiedy tylko przyjdzie mi na to ochota.
    Może wrócisz do „stukania” na gadu?

  • andreq

    @zibi

    Nacisnąć jeden guzik to nawet małpa potrafi… Niech w takim wspaniałym systemie producent zapewni jakieś sensowne narzędzia do defragmentacji dysku, do to co się dostaje z systemem woła o pomstę do nieba. Trzeba się posiłkować zewnętrznymi aplikacjami. Zresztą nie tylko do tego…
    Co do sterowników do urządzeń, główny problem brak dokumentacji od producentów, jeśli była by dostępna to developerzy bez problemu napisaliby sterowniki.

  • Nierob

    Fajny tutorial, tylko po co ?? Bezpieczeństwo, a właściwie pewność działania spada radykalnie dla ułamka milisekundy. Bez sensu. Jeśli ktoś lubi tracić dane i funkcjonalność to jego problem, ale zachęcanie do takiej zabawy bez ostrzeżenia napisanego DUŻYMI, CZERWONYMI LITERAMI toż to zbrodnia :>. Czy autor próbował wyłączyć księgowanie? to jest dopiero przyspieszające, a to że awarie są dużo groźniejsze… trudno 😛

  • A to dir_index jak same plusy, to czemu nie włączone domyślnie, hę? 😉

  • @zergu

    Wiesz – domyślnie to już na pewno jest włączone, ja miałem robione partycje na dysku około roku 2003-2004. Wtedy nie było 🙂

Translate »