Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 

Spis treści

Otwieramy sobie konsole i tworzymy katalog .readahead w katalogu domowym. Teraz uruchamiamy ponownie komputer, dochodzimy do ekranu logowania i nie logujemy się. Przechodzimy do terminala naciskając CTRL+ALT+F1. Logujemy się w nim i wpisujemy polecenie:
sudo readahead-watch -o ~/.readahead/gnome.root /
Polecenie to spisuje wszystkie pliki z głównego systemu plików / do pliku ~/.readahead/gnome.root. Polecenie zwróci zachętę dopiero po jakimś czasie, więc trzeba czekać cierpliwie. Można obserwować diodę twardego. Nie wylogujemy się tylko wracamy do środowiska graficznego - CTRL+ALT+F7. Teraz normalnie się logujemy w GDM. Może to trochę potrwać dłużej niż normalnie, ponieważ w tle logowania proces readahead-watch luka jakie pliki są używane do procesu logowania się i je spisuje do pliku. Gdy system się już całkiem zaloguje, pulpit się pokaże, wracamy z powrotem do terminala nr 1 (CTRL+ALT+1).  Wstukujemy:
sudo killall readahead-watch
To zabije proces readahead-watch i skończy obserwowanie plików. Starczy danych zebranych. Jako że poprzednie polecenie było uruchomione z sudo więc plik gnome.root należy do root'a. Trzeba go przepisać na siebie:
sudo chown -R <nazwa_użytkownika>:<grupa_użytkownika> ~/.readahead
Oczywiście w miejsca <nazwa_użytkownika> i <grupa_użytkownika> wstawiamy odpowiednie swoje dane. Teraz trzeba wyczyścić listę plików, które zebraliśmy.
cat ~/.readahead/gnome.root | xargs -i ls -lk {} | sort -rn -k +5 | less
Sortowanie wyników też trochę trwa, więc zanim się coś pojawi w oknie terminala, trzeba będzie chwilkę poczekać. Jeśli nic sie nie pojawia naciśnijcie cokolwiek. W programie Less wyświetli się lista plików posortowana od największego do najmniejszego. Wielkości podane są w kilobajtach. Uruchamiamy ulubiony edytor tekstu i edytujemy plik ~/.readahead/gnome.root. W tym pliku są ścieżki dostępu do plików zaobserwowanych przez readahead-watch. Wywalamy wszystkie pliki z tej listy, które mają więcej niż 10 MB. Np. jeśli mamy film 700 MB na pulpicie to na pewno będzie wczytany podczas uruchamiania Gnome'a (o ile wszystko mamy na jednej partycji). Jeżeli go nie usuniemy z listy to będzie wczytany przez readahead. Nie dość, że nie potrzebnie opóźni uruchamianie systemu, to jeszcze zaśmieci pamięć. Tak samo usuwamy z listy wszystkie tymczasowe pliki, bo nie ma sensu ich ładować w trakcie uruchamiania systemu, ponieważ za kilka dni ich może już nie być, bo sami je skasujemy/przeniesiemy. Nie potrzebnie potem readahead będzie robić się odwołania do tych plików. Czasami się zdarza, że system wczytuje jakieś pliki ze śmietnika. Trzeba je będzie też usunąć (ścieżka dostępu do śmietnika to ~/.local/share/Trash/). Albo przed sporządzaniem listy wyczyścić śmietnik.
Jak zauważyliście w pliku gnome.root są tylko pliki znajdujące się na partycji z punktem montowania /. Jeśli katalog /home jest punktem montowania innej partycji wtedy trzeba jego też poobserwować. Czyli restartujemy jeszcze raz i powtarzamy czynności powyższe tyle, że zmienia się nieco komenda readahead-watch. Teraz obserwujemy odwołania do plików na partycji /home.
sudo readahead-watch -o ~/.readahead/gnome.home /home
Dalej powtarzamy te same czynności. Gdy chcemy wyświetlić posortowane wyniki w programie Less dajemy:
cat ~/.readahead/gnome.home | xargs -i ls -lk {} | sort -rn -k +5 | less
I tak samo jak wcześniej wyrzucamy wszystkie za duże pliki (większe niż 10 MB) i tymczasowe. Najlepiej zostawić po prostu wczytywanie ustawień programów, które są w katalogu domowym użytkownika. 
Teraz trzeba zapodać readahead tą listę podczas startu systemu. Najlepiej w tym przypadku do tego się nadaje plik /etc/rc.local. Otwieramy go w edytorze i przed exit 0 dajemy poniższy kod:
for list in /home/<nazwa_użytkownika>/.readahead/*
do
readahead-list $list
done
Oczywiście za <nazwa_użytkownika> wstawiamy odpowiednią nazwę katalogu domowego użytkownika. Pętla zostanie wykonana tyle razy ile jest plików w katalogu .readahead. A powinno ich być jeden lub dwa, w zależności ile razy powtórzyliśmy proces zbierania danych. Dobrze jest usunąć pliki zapasowe, które się tam znajdują (wszystkie które się kończą na ~). Polecenie readahead-list wczyta pliki z plików gnome.root i gnome.home (jeśli jest).
Teraz możemy zrestartować i zmierzyć nowy czas. Na pewno będzie mniejszy. Ja zaoszczędziłem jakieś 25 sekund. A to dużo. System zaczął mi startować w 45 sekund. Ten sposób jest dobry jeśli mamy jednego użytkownika w systemie. Gdy jest ich więcej i jeszcze ktoś korzysta z systemu, ma swoje konto, dla niego nie będzie przyspieszenia, ponieważ skrypt rc.local wczytuje dane tylko dla jednego użytkownika. Przez co inny użytkownik będzie nie potrzebnie czekał na wczytanie i tak nie swoich plików z katalogu domowego użytkownika, który popełnił ten sposób. Jeśli jest więcej użytkowników w systemie polecam przeczytać następną stronę. Następny sposób już nie jest aż tak skuteczny jak ten, ale też przyspieszy.
Możemy zauważyć znaczny wzrost aktywności dyskowej. W momencie ładowania systemu, są wczytywane pliki użytkownika. Jak pojawi się ekran logowania GDM przez jakiś czas, sekundę, będzie on nie aktywny, ponieważ pliki użytkownika są jeszcze wczytywane.


Wykorzystanie zawartości tej strony w celach komercyjnych bez zgody autora jest zabronione.
Jeśli wykorzystujesz zawartość tej strony w swoich artykułach, podaj jako źródło adres URI tej strony. Google+
Creative Commons License