Linux-uppstart tar för lång tid? Diagram det!
Hårdvaran fortsätter att bli snabbare och snabbare, och de flesta av oss kör maskiner som skulle ha varit otänkbart snabba för ett årtionde, men det verkar aldrig på något sätt som den känns. När hårdvaran blir snabbare verkar programvaran bli större och långsammare och vi verkar alltid sluta med något som dansar runt användbarheten. Linux har inte varit något undantag för detta, med varje ny förskott i hårdvara som ger en matchande ökning av mjukvarans komplexitet. Om ditt system tar för lång tid för att starta, är det bästa sättet att fixa det att veta vad som tar dig ner. För det finns Bootchart. Detta lilla verktyg visar dig exakt vad som startar när och hur lång tid det tar varje steg.
Installation
De flesta större Linux-distributioner har Bootchart redan tillgängliga i sina standardförvaringar. Ubuntu-användare kan till exempel installera via Ubuntu Software Center eller från kommandoraden med:
sudo apt-get installera bootchart
Om din distro inte har ett paket tillgängligt, kan du hämta en från Bootchart-hämtningssidan.
Om du installerade från källan kan du behöva lägga till Bootchart manuellt i systemets startrutin. Om så är fallet, se dokumentationen här.
Running Bootchart
Om det är korrekt installerat behöver Bootchart inte köras direkt av användaren. Istället laddas den av operativsystemet vid starttid. Naturligtvis innebär det att du måste starta om för Bootchart att göra dess sak. Starta om i vilken runlevel du vill Bootchart ska övervaka. Om du inte vet vad en runlevel är, startar du bara på normalt sätt.
När systemet är igång kan du titta på diagrammet ( / var / bootchart ) för att hitta problemområdena.
Det är värt att notera att en stapel som kör hela diagrammets hela bredd inte nödvändigtvis betyder att den är långsam. Ofta är det program som initieras under start och fortsätter att springa när start är klar, som udev eller Xorg .
För att få en uppfattning om hur mycket tid som varje objekt spenderar faktiskt drar stora resurser, ta en titt på baren nära och du kommer se olika nyanser av färg som representerar de olika delarna av programmet vid den tiden.
De blå sektionerna representerar tiden som spenderas med användning av CPU, den rosa visar diskaktiviteten och grå är tiden i viloläge. Om du letar efter sätt att beskära din start, leta efter objekt med mycket blå eller rosa, eftersom de äter upp de flesta resurserna.
Ta bort startelement
Det är här saker kan bli svåra, eftersom olika Linux-distributioner ibland hanterar uppstart på olika sätt. "Standard" -metoden är känd som SysV Init, och vi har tidigare diskuterat startändringar på Debians SysV-stilstart. Denna metod kommer att fungera på de flesta Linux-distributioner.
Kortfattat hittar du förmodligen listan över startprogram på en plats som /etc/rc2.d . Detaljer om borttagningsprocessen finns på länken ovan, men det finns en punkt som bör betonas. Filerna du ser i din rc X.d-katalog följer alla en konsekvent namngivningsschema. De som börjar med S lanseras när det här körbanan nås, dödas de som börjar med K.
Det betyder att för att förhindra att ett objekt startas behöver du inte redigera eller ta bort filen, bara byt namn på den så att S nu är en K. Detta kommer att se till att programmet inte körs, och du kan lämna filerna helt intakta om du bestämmer dig för att ändra ditt sinne senare.
Slutsats
Med ett verktyg som Bootchart kan du trimma ditt system till bara de saker du behöver, vilket minskar fördröjningen och resursanvändningen i processen. Med Bootchart och Window Maker-skrivbordet har denna författare lyckats få ett 1, 2 GHz Debian-system för att starta på under 20 sekunder medan man aktivt använder endast 2% av systemminne. Du kan inte fixa det om du inte vet att den är trasig, och Bootchart gör det enkelt.