Boot zeit optimieren.

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Boot zeit optimieren.

Beitrag von Lord_Carlos » 18.01.2009 21:21:31

Tag debianforum :)

Ich habe gerade ein blog Eintrag [1] gelesen wo einer sein Arsch auf 11 Sekunden getuned hat (mit bios, grub, etc so ~ 20 Sekunden) Youtube Video hier [2]
Da dachte ich mir: Das möchte ich auch.
Hat jemand gute tipps oder vielleicht ein tutorial wie man seine bootzeit unter Debian schneller machen könnte? Darf gerne experimentell sein!
Also ein schnelles Datensystem benutzen wäre ein Anfang (Ext4?)
Und gibt es eine config mit Diensten die beim booten gestartet werden sollen? Weil bei mir startet er auch immer lighttpd obwohl ich ihn nur selten brauche.

Also, immer her mit den guten Tipps.

Mfg Lord-carlos

System: Debian Sid + experimental

edit: Habe jetzt auch mal ein bootchart mit meinemsystem gemacht .. ganze 47 sekunden [3]

[1] http://echtor2oo3.de/index.php?entry=entry090118-125750
[2] http://www.youtube.com/watch?v=o2zYpS_U ... nforum.de/
[3] http://img187.imageshack.us/my.php?imag ... arthz7.png
Zuletzt geändert von Lord_Carlos am 19.01.2009 06:22:00, insgesamt 1-mal geändert.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
Profbunny
Beiträge: 595
Registriert: 04.04.2004 11:12:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Bautzen

Re: Boot zeit optimieren.

Beitrag von Profbunny » 18.01.2009 21:58:15

http://lists.debian.org/debian-devel/20 ... 01119.html

aus den tiefen meiner link sammlung, ich hatte das auch mal getestet und kam in etwa auf den wert, ca 30% zeitersparnis - ich hatte nur ein haufen probleme mit insserv - bei jedem update der was mit init scripten zu tun hatte musste ich nacharbeiten, deswegen hab ich es wieder gelassen

happy testing
Rechner / Server Debian sid

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Boot zeit optimieren.

Beitrag von Lord_Carlos » 18.01.2009 22:15:24

Danke für den link, werde ich mir mal angucken.

habe jetzt auch schon ein Programm gefunden mit dem ich bestimmen kann welche init.d scripte mitgestartet werden sollen. rcconf.
Jetzt stellt sich die frage welche man wirklich brauch.
  • exim4 <-- Hat das nicht was mit mails zu tun?
  • avahi-deamon <-- was ist das?
Habe die boot zeit jetzt auch schon 10 Sekunden verkürzt weil ich gpsd und lighttpd raus geschmissen habe. Aber was gibt es sonnst noch so für unwichtige Programme?

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Re: Boot zeit optimieren.

Beitrag von cosmac » 18.01.2009 22:20:32

hi,

eigentlich ganz einfach: nur das installieren, was man wirklich braucht. So bin ich auch schon mal auf ca. 11 Sekunden gekommen -- mit einer 500MHz-CPU, einschließlich Start der ersten GTK-Anwendung. Die "Tricks" waren eine CF-Karte als Platte und die Optionen aus dem nächsten Absatz. Das Ganze ist aber total subjektiv, weil jeder andere Bedürfnisse hat. Wer Hintergrundbilder, Fortschrittsbalken und Startsound braucht, ist klar im Nachteil.

Ein paar Optionen mit relativ viel Wirkung pro Aufwand:
- passender Kernel ohne initrd
- statisches /dev, besser garkein udev
- Kerneloption "quiet", besonders wenn man den Framebuffer braucht
- hwclock nicht aufrufen (das verändert aber die FAT-Zeitstempel)
- dash statt bash
- XFCE (oder noch weniger) statt Gnome/KDE
- kein gdm/kdm/xdm, direkt per xinit starten
- kein Hintergrundbild, keine Desktop-Icons

als nächstes kann man einzelne Startscripte aus den Runleveln entfernen, aber da sollte man schon wissen, was man tut:
- glibc.sh
- hwclock, hwclockfirst
- hdparm
- checkfs
- mountoverflowtmp (das finde ich völlig überflüssig)
- console-screen.sh
- und noch die, die ich jetzt vergessen hab'

Bis jetzt hat man immer noch ein Debian, das sich auch updaten lässt. Wie man den nächsten Schritt so kompatibel hinbekommt, ist mir noch nicht ganz klar. Man kann sich damit sein System auch ganz bequem zerschiessen, dafür ist das Prinzip einfach: man packt alle Scripts aus /etc/init.d/ zusammen in ein Script und entfernt dabei alle Zeilen, die sowieso nicht ausgeführt werden und die zugehörigen Abfragen. Das wird dann statt /etc/init.d/rcS in die inittab eingetragen. Wenn man die Runlevel behalten will, muss man es entsprechend in rcS und rc aufspalten.
Beware of programmers who carry screwdrivers.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Boot zeit optimieren.

Beitrag von Lord_Carlos » 18.01.2009 22:51:16

Vielen dank an alle, bin jetzt auch schon runter auf 26 sekunden.
- hwclock nicht aufrufen (das verändert aber die FAT-Zeitstempel)
Also das macht nur was wenn man ne FAT32 platte gemountet hat?
- statisches /dev, besser garkein udev
Kannst du das genauer klären? Oder ein link der mir weiterhelfen könnte.
- passender Kernel ohne initrd
Muss ich beim kernelkompilen was beachten wenn ich kein initrd haben will?

Wenn ich jetzt nochmal meine (neue) bootchart mit der aus dem blog vergleiche dauert es realtiv lange biss bei mir rc startet. 6 Sekunden, beim arch Rechner aus dem blog dauert das nur 3 Sekunden.
Dazu starten seine Dienste direkt nach dem start von rc, bei mir brauch readahead-list erstmal 10 sekunden.

edit:
Noch einen netten Artikel gefunden http://www.debian-administration.org/articles/620

edit2:
Habe es jetzt geschafft einen kernel ohne initrd zu compilieren, aber leider geht bootchart nicht mehr. Hat jemand ein tipp?

edit3:
readahead bringt nichts :/ Bin jetzt aber runter auf 22 Sekunden \o/ Jetzt würde ich gerne wissen wie ich einstelle das kdm früher gestartet wird, und Sachen wie dhcpd später. Edit5: Muss ich dafür die daten in /etc/rc2.d/ manuell umbenennen?

edit4: Obwohl ich beim kompilieren nicht mit angegeben habe das er initrd erstellen soll, ich ich in meiner grub/menu.lst ein Verweis auf initrd stehen. Warum das? Konnte es einfach rauslöschen

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

cosmac
Beiträge: 4579
Registriert: 28.03.2005 22:24:30

Re: Boot zeit optimieren.

Beitrag von cosmac » 24.01.2009 16:50:29

Lord_Carlos hat geschrieben:
- hwclock nicht aufrufen (das verändert aber die FAT-Zeitstempel)
Also das macht nur was wenn man ne FAT32 platte gemountet hat?
ja (FAT12 und FAT16 natürlich genauso) und evt. noch ein anderes Dateisystem, müsste man mal suchen.

Das Problem ist, dass auf einem FAT-Datenträger die aktuelle Ortszeit als Zeitstempel verwendet wird. Dazu muss der Kernel UTC nach Ortszeit umrechnen und dazu muss er die Zeitzone kennen. Der allererste Aufruf von hwclock sagt ihm das. Ohne die Info wird UTC als Zeitstempel verwendet. Wenn man dann eine Datei um 09:00 erstellt, zeigt Windows stattdessen 08:00 an (oder im Sommer 07:00).

Normalerweise braucht der Kernel die Zeitzone nicht, weil die Umrechnung von der libc gemacht wird sobald die Zeit irgendwo angezeigt wird. Das hat den großen Vorteil, dass bei der Gelegenheit auch die Sommerzeit eingerechnet wird und die Kernel-Uhr nicht umgestellt werden muss.
Lord Carlos hat geschrieben:
- statisches /dev, besser garkein udev
Kannst du das genauer klären? Oder ein link der mir weiterhelfen könnte.
Der Abschnitt "Eliminating coldplugging"aus dem netten Artikel erklärt eigentlich alles. Besonders nett ist der Kompromiss, wenn udev zwar gestartet wird, aber praktisch nichts mehr zu tun hat, weil es alle Devices schon gibt. Das lässt sich noch ein wenig steigern, wenn man /dev nicht als tmpfs sondern auf der root-Partition anlegt. Dann ist es wirklich statisch und beim Booten muss kein Device mehr neu erzeugt werden. Ob man udev gleich deinstalliert, ist wieder Geschmackssache: beim Boot dürfte es nicht mehr bremsen und für USB-Speicher ist's evt. ganz nett.
Wenn ich jetzt nochmal meine (neue) bootchart mit der aus dem blog vergleiche dauert es realtiv lange biss bei mir rc startet. 6 Sekunden, beim arch Rechner aus dem blog dauert das nur 3 Sekunden.
Mit "CONFIG_PRINTK_TIME=y" (und ohne "quiet"-Boot-Parameter) schreibt der Kernel vor jede Zeile die Zeit. So sieht man, welche Hardware sich beim Initialisieren Zeit lässt. Evt. hatte der arch-Rechner einfach weniger USB-Controller.
Beware of programmers who carry screwdrivers.

Echtor2oo3
Beiträge: 2
Registriert: 14.05.2007 17:21:32

Re: Boot zeit optimieren.

Beitrag von Echtor2oo3 » 25.01.2009 18:15:23

6 Controler sollten es sein :) Ist wie geschrieben ein Samsung SA11 Notebook
Btw bin ich weiter dran, wird noch ne überraschung geben :>

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: Boot zeit optimieren.

Beitrag von roli » 25.01.2009 18:43:12

Hi,
Lord_Carlos hat geschrieben:Hat jemand gute tipps oder vielleicht ein tutorial wie man seine bootzeit unter Debian schneller machen könnte?
um was zu verbessern muss man erstmal wissen, wo man schlecht ist. Installier mal Bootchart, anschliessend siehst du wo sich's ueberhaupt lohnt drann zu drehen.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Echtor2oo3
Beiträge: 2
Registriert: 14.05.2007 17:21:32

Re: Boot zeit optimieren.

Beitrag von Echtor2oo3 » 25.01.2009 19:21:05

Lord_Carlos hat geschrieben: edit: Habe jetzt auch mal ein bootchart mit meinemsystem gemacht .. ganze 47 sekunden [3]
[3] http://img187.imageshack.us/my.php?imag ... arthz7.png

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Boot zeit optimieren.

Beitrag von Lord_Carlos » 25.01.2009 19:31:38

Hier ist auch eine aktuellere bootchat. http://img98.imageshack.us/img98/8540/bootchart8tg1.png
das mit dem HWclock werde ich auch noch mal ausprobieren.

Nach dem booten wert mir via lsmod auch keine module mehr angezeigt, ist also alles reinkompiliert. Habe ich doch richtig verstanden das das die bootzeit optimiert oder?

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Antworten