Materiał do optymalizacji skrzętnie się chowa



W wolnej chwili zrobiłem dzisiaj reboot i narysowałem przebieg uruchamiania systemu:

[wykres]

I co widać? Od załadowania jądra do chwili kiedy mogę się zalogować mija aż 45 sekund. Pierwsze piętnaście nie dzieje się nic sensownego - uruchamia się jądro i programy zawarte w initrd. Czyli lvm vgscan i vgchange. Przed uruchomieniem inita następuje zamountowanie /. I na to mija najwięcej czasu - na oko coś koło 10 sekund (!!) trwa zamountowanie 177 GB ReiserFS'a. Wg. mnie coś jest nie tak, sprawdzanie journala nie powinno tyle trwać. Ale nie wiem co z tym zrobić.

W szesnastej sekundzie zaczynają działać skrypty startowe. Hotplug ładuje moduły co powoduje podniesienie sieciówki. W oczy rzucają się sleepy około 2 sekundowe, jeden nawet dłuższy - trzeba je wziąść pod lupę.

Po trzydziestej sekundzie wszystko wisi na I/O - dysk pracuje intensywnie, chociaż z bardzo małą przepustowością - najwyraźniej ma miejsce bardzo wiele wyszukiwań i małych odczytów. Tutaj może pomóc zaimplementowanie jakiegoś readahead, chociaż czytałem, że wbrew pozorom nie daje to zysku większego niż dwie-trzy sekundy.

W końcu po 45 sekundach okno logowania GDM czeka na mój login i hasło, a bootchart kończy działanie. Po zalogowaniu muszę czekać jeszcze jakieś 5-8 sekund na załadowanie GNOME - ale optymalizacją tego już się zajmować nie będę. Ekipa od dużego G cały czas się zajmuje różnymi małymi ulepszeniami.

Widoczne na wykresie skrypty delay.sh odpowiadają za uruchomienie usług niekrytycznych na workstacji (acpid, samba, cron, apache, cups, smartd, qmail) w czasie 2 do 4 minut po ich wywołaniu.
Podsumowując - nie widać zbyt wielu oczywistych kandydatów do optymalizacji i skrócenia czasu bootowania. A szkoda, bo 45 sekund to kupa czasu, kiedyś było zdecydowanie mniej. Dobrze, że tak rzadko komputer uruchamia się od zera.


Archived comments:

cosmoz 2005-08-12 16:05:07

Poszukaj czegos takiego jak zrownoleglenie uruchamiania skryptow startowych - niedawno (tzn w ciagu ost 2 miesiecy bodajze) bylo kilka artykulow na ten temat. ZTCP to udawalo sie zejsc ludziom ponizej 20 sekund.

zdzichuBG 2005-08-12 16:06:40

A potem przy każdym upgradzie skryptów w dystrybucji siedzieć dwa dni i synchronizować zmiany? Nie dzięki, postoję :)
Zresztą najbardziej mnie wkurza pierwsze piętnaście sekund uruchamiania, kiedy jeszcze skrypty startowe nie działają.

DoomHammer 2005-08-12 16:44:36

to jest ten problem: initNG dziala mi tylko z jadrem, na ktorym je instalowalem. Na moich kustomowych - niezbyt.

Comments


Comments powered by Disqus