Journal [HowTo] Comment démarrer/arrêter plus rapidement votre Debian unstable ?

Posté par  .
Étiquettes :
0
29
nov.
2005
Voici un journal qui va en intéresser plus d'un, je vais vous expliquer comment accélérer le démarrage de votre Debian unstable.
Ceci est possible grâce à un nouveau logiciel libre initng qui remplace avantageusement init : http://initng.thinktux.net
initng parallélise le démarrage des démons en ayant une gestion de dépendances (par exemple udev doit démarrer avant les autres démons).

ATTENTION !!! Ceci est encore considéré comme expérimental par les développeurs Debian, je décline toute responsabilité si votre debian ne démarre plus. Néanmoins, la procédure est facilement réversible.
J'explique ici comment faire avec grub, mais si vous avez encore lilo, y'a une explication en anglais sur le site officiel.

1° Allez récupérer la dernière version d'initng sur : http://alioth.debian.org/projects/pkg-initng/

2° installez-la avec la commande dpkg -i initng_[VERSION].deb

3° éditez en root le fichier /boot/grub/menu.lst et recherchez la ligne qui commence par : # kopt=

4° ajoutez ceci à la fin de cette ligne : init=/sbin/initng

5° enregistrez le fichier, puis lancez la commande : update-grub

6° redémarrez et mettez le chrono :-)

=============
Mini FAQ

Q: J'ai redémarré mais rien ne fonctionne, comment revenir en arrière ?
R: Au démarrage de l'ordinateur, dans le menu de grub, il est possible d'éditer les options de démarrage en appuyant sur la touche "e". Il suffit de supprimer init=/sbin/initng de la ligne pour revenir à l'ancien système. Après le démarrage, il faudra rééditer /boot/grub/menu.lst, enlever init=/sbin/initng et lancer update-grub

Q: Le démon XXX n'est plus au démarrage, comment le mettre au démarrage par défaut ?
R: Il faut savoir que le dossier /etc/init.d ainsi que les /etc/rcX.d n'est pas utilisé par initng.

À la place nous avons les commandes :

# ng-update show
affiche les démons qu'on peut lancer.

# ng-update add daemon/nom_du_démon default
met le démon au démarrage de l'ordinateur.

# ng-update del daemon/nom_du_démon default
supprime le démon au démarrage de l'ordinateur.

# ngc -u nom_du_démon
lance le démon

# ngc -d nom_du_démon
arrête le démon

# ngc -j nom_du_démon
redémarre le démon

=============
J'espère que ce mini-howto vous sera utile. J'ai découvert initng ce week-end et ce projet à l'air très prometteur. Je ne peux que vous conseiller de lire la doc http://initng.thinktux.net/index.php/Documentation ainsi que les pages man des différents logiciels.
initng n'utilise pas les scripts bash pour lancer les démons mais un fichier de configuration pour chaque démon.
Pour ma part, je trouve que ces fichiers de configuration sont bien plus lisibles que les scripts bash.
Enfin, il est également possible d'écrire des plugins pour initng.

N'hésitez à tester ce logiciel, à écrire un fichier de configuration pour votre démon préféré si cela n'a déjà été fait, à rapporter des bugs.
  • # ...

    Posté par  . Évalué à 3.

    J'espère que ce mini-howto vous sera utile.
    Il repond pas a la question que tu poses dans le titre, a savoir combien est-ce que tu as gagné...
    • [^] # Re: ...

      Posté par  (site web personnel) . Évalué à 7.

      Si il répond, la question est "Comment accélérer ? ", pas "De combien accélérer ?"... et ça, il le fait très bien.

      Ceci dit, c'est tout de même une question pertinente.
  • # Argh

    Posté par  . Évalué à 4.

    Super, génial, je boote en 15s chrono contre près d'une minute avant.
    Il y a un prob. Un seul.
    Le server X refuse de se lancer avec startx, il dit qu'il ne trouve pas le device /dev/input/mice...

    J'ai le droit de faire la tête ?
  • # En cours d'intégration à Fedora Extras

    Posté par  (site web personnel) . Évalué à 5.

    A noter qu'on est en train de le packager pour Fedora Extras. Il reste encore du boulot, mais ça avance bien. Vous pouvez suivre l'évolution ici : https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=173459

    Le gain de vitesse est très visible, c'est de l'ordre de 2 fois chez moi, avec tous les mêmes services lancés (attention aux comparaisons, par défaut initng ne lance pas tous les services qui étaiens configurés dans SysVinit).
  • # ubuntu

    Posté par  (site web personnel) . Évalué à 5.

    sous ubuntu ...
    voici un meilleur tuto, avec beaucoup de feedback
    http://www.ubuntuforums.org/showthread.php?t=80423&highl(...)
    • [^] # Re: ubuntu

      Posté par  . Évalué à 2.

      sauf qu'il parle de la 0.3.3, pas mal de choses ont été amélioré depuis. (on en est à la 0.4.4)
  • # Comme quoi gentoo :)

    Posté par  . Évalué à 2.

    Sachant que ce superbe initng est développé à la base par un gars sur le forum de gentoo. J'avais testé un ebuild y'a longtemps, ca marchait pas trop mal mais il manquait trop de scripts pour que ca soit utilisable. En tout cas c'est sur, ca allait beaucoup plus vite !
    • [^] # Re: Comme quoi gentoo :)

      Posté par  . Évalué à 3.

      Donc, ça veut dire que les gars de Gentoo ont de bonnes idées qui partent d'abord chez Debian et Fedora avant d'arriver sur Gentoo ?

      Parce que c'est vrai que le démarrage de la Gentoo chez moi, c'est lent.
      • [^] # Re: Comme quoi gentoo :)

        Posté par  . Évalué à 3.

        Avec gentoo, dans /etc/conf.d/rc il y a une variable RC_PARALLEL_STARTUP qu'il suffit de mettre à "yes" pour avoir un démarrage en parallèle des services, avec gestion des dépendances.

        Ca fait des mois que ça existe chez gentoo, y compris dans la version stable.

        *yawn*
        • [^] # Re: Comme quoi gentoo :)

          Posté par  . Évalué à 2.

          oui mais ca n'utilise pas initng à ce que je sache, si ?
          • [^] # Re: Comme quoi gentoo :)

            Posté par  (site web personnel) . Évalué à 2.

            Non, ça n'a pas l'air, le paquet n'est pas installlé chez moi. (encore marqué en unstable :
            !!! All ebuilds that could satisfy "initng" have been masked.
            !!! One of the following masked packages is required to complete your request:
            - sys-apps/initng-9999 (masked by: -* keyword)
            - sys-apps/initng-0.4.0 (masked by: ~x86 keyword)
            - sys-apps/initng-0.4.4 (masked by: ~x86 keyword)

            Mais Gentoo gère ça "par défaut", alors qu'aucun outil ne le fait sous Debian.
            Il a fallut coder un nouveau projet avec une idée existante.
        • [^] # Re: Comme quoi gentoo :)

          Posté par  . Évalué à 4.

          Oui, je l'ai d'activée depuis très longtemps mais cette option n'améliore pas sensiblement les choses.
  • # Et un Poster en prime

    Posté par  (site web personnel) . Évalué à 6.

    Comme mentionné plus haut dans d'autres commentaires, la parallélisation du démarrage des démons n'est pas une idée neuve. Le problème réside dans l'architecture de SysV. Plusieurs solutions ont été proposées pour pallier aux défauts d'init (voir le papier de Gooch pour comprendre: http://www.atnf.csiro.au/people/rgooch/linux/boot-scripts/ )

    Je crois que la solution adoptée par Gentoo de repenser le SysV est de loin la meilleure: pas besoin de se creuser la tête pour définir l'ordre de démarrage des démons, les scripts de gestion déterminent tout ça eux-même en fonction des dépendances annonçées dans les scripts de démarrage des démons.

    De fait sous Gentoo la parallélisation est tout à fait naturelle et intégrée de base dans init dès lors que le fichier rc mentionne cette option. L'idée a donc germée chez les autres distrib de fournir un init modifié qui en fasse de même sans toutefois remettre en cause le SysV.

    Et puis l'année dernière Owen Taylor un développeur de RedHat a proposé le challenge de faire un poster représentant l'utilisation des ressources pendant le démarrage. De là est né le projet Bootchart ( http://www.bootchart.org/ ) qui représente de façon fort sympatique les différentes étapes du boot et l'utilisation des ressources de la machine. On a ensuite vu fleurir tout un tas de posters avec et sans parallélisation. J'avoue redémarrer trop rarement mes machines pour m'être interessé au projet, mais en cherchant un peu on doit facilement pouvoir retrouver ces exemples.
  • # quel démarrage ?

    Posté par  . Évalué à 2.

    allez, puisque personne ne l'a encore faite :

    "A quoi est-ce que cela sert, vu que ma machine ne redémarrage jamais ?" ;)

    Cela dit, blague à part, cela semble très intéressant, surtout pour pallier à la réputation de lenteur de démarrage de linux. Je vais tester sur mon vieux pentium qui fait tellement de bruit que je suis obligé, lui, de l'éteindre dès que je ne l'utilise pas :)

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Pour booter plus vite, utilisez l'hibernation

    Posté par  (site web personnel) . Évalué à 2.

    http://www.suspend2.net/

    C'est configuré de base dans Ubuntu.

    Haypo
  • # Faut juste savoir

    Posté par  . Évalué à 1.

    C'est que les devs d'initng sont pas filou filou. Ils ont eu de superbes idées mais :
    * Il n'y a pas si longtemps de cela les RPC (pour dire à l'init, coupe le système etc...) c'était via 2 fifos : une d'entrée et une de sortie. Heureusement qu'ils sont sur des sockets unix maintenant.
    * Quand je leur ai dit que << votre init segfaulte, il faudrait peut-être mettre un handler sur le segfault et faire un boucle infinie avec un sleep dedans histoire de pas boofer 100% du CPU ? >> (car au passage, un init qui segfaulte prend 100% du CPU) ils ont répondu : << oui mais c'est idiot, un handler ça captera jamais le segfault ! >> (regardez KDE, le programme qui lance tout seul le panneau informant que vous avez eu un segfault, c'est pas un exemple du fait que ça marche ?)

    Merci à phh pour m'avoir pas mal informé sur la construction des init

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.