Już dość dawno temu opisałem, w jaki sposób
przyspieszyłem start Debiana o ok. 7 sekund. W ramach ostatnich dni pojawiło się jądro 2.6.30, które wprowadza kolejne zmiany mające na celu przyspieszenie bootowania. Pomyślałem, że to dobra okazja do kompilacji.
Zanim przejdę dalej, powinienem opisać, jak mierzę czas startu - zwłaszcza, że zmieniło się to od poprzedniego wpisu. Czas bootowania mierzyłem stoperem. Pomiar rozpoczynałem w momencie wciskania enter w GRUB'ie, a kończyłem w momencie pojawienia się linijki zachęcającej do zalogowania (wyłączyłem kdm). Czasy, które podaję w dalszej części tego wpisu, to średnie z trzech pomiarów.
Korzystając z okazji postanowiłem pozbyć się initrd, który podobno wydłuża bootowanie o ok. 1-1,5 sekundy. Wiele dystrybucji Linuksa używa initrd przy rozruchu systemu. Dzięki temu, mogą skompilować uniwersalne jądro, które jednocześnie będzie zajmowało mało miejsca. Nas uniwersalność nie obchodzi - z założenia kompilujemy jądro tylko dla siebie. Aby rezygnacja z initrd nie skończyła się na
Kernel Panic, musimy wkompilować w jądro parę rzeczy. Przede wszystkim będzie to obsługa naszego dysku twardego, używany na partycji linuksowej system plików, oraz obsługa dysków SCSI (o ile Linux rozpoznaje nasz dysk np. jako sda, a nie hda). U siebie musiałem ustawić takie opcje:
General Setup > Initial RAM filesystem and RAM disk support
[N]
Device Drivers > SCSI device support > SCSI disk support
[Y]
Device Drivers > Serial ATA and Parallel ATA drivers > ATA SFF support
[Y]
Device Drivers > Serial ATA and Parallel ATA drivers > Intel ESB, ICH, PIIX3, PIIX4, PATA/SATA support
[Y]
File Systems > Ext3 journalling file system support [Y]
Tradycyjnie na początku wykonałem pomiar kontrolny, żeby mieć odniesienie. Na moim poprzednim jądrze - 2.6.28.6 (również skompilowanym przeze mnie), czas startu wyniósł 20,76 sek. Natomiast świeżo skompilowane jądro 2.6.30 wystartowało w 18,07 sekund, czyli niemal o 3 sekundy szybciej. Zauważyłem jednak, że trzeba powtórzyć jedną z operacji z poprzedniego wpisu ( touch /etc/readahead/profile-once ). Po jej wykonaniu kolejny start trwał dłużej, bo readahead zbierał informacje. Kolejne starty systemu były już dużo szybsze, czas wyniósł 15,49 sekund. Widzimy, że ostatecznie udało się przyspieszyć bootowanie Debiana o ponad 5 sekund. Z pewnością większa to zasługa poprawek w jądrze, niż pozbycia się initrd.
Wszystkie przedstawione tutaj opinie należą do ich autorów i twórca strony nie ponosi żadnej odpowiedzialności za ich treść.
W polu "Strona WWW" wpisywanie członu "http://" nie jest konieczne. Tagi (X)HTML wpisane w treści nie będą działać jako element strony, zamiast tego pojawią się w samym komentarzu. Komentarze obraźliwe, nie na temat lub niezgodne z prawem będą w miarę możliwości usuwane.