Journal Netbook et niveau d'exécution

31
31
août
2012

Une petite astuce, évidente (mais les solutions évidentes sont celles dont on ne pense jamais), mais pratique pour gagner quelques petits dixième de watt ou un peu de réactivité sur votre netbook.

Si, comme moi, vous travaillez sur un netbook bas de gamme, vous êtes soucieux de chaque processus tournant en arrière-plan. Et si, comme moi, vous devez faire, parfois, des tests avec des logiciels comme Samba, OpenLDAP, MySQL, Apache, … cette petite astuce est pour vous.

Sur mon netbook j'ai besoin de logiciel serveur pour faire des tests. La majorité du temps, ils démarrent, prolongeant le démarrage ou la sortie de veille, et mangent des cycles processeurs, donc de la batterie et des accès disques, juste pour qu'ils soient disponibles 5 minutes par mois.

Cherchant une solution, j'ai torturé mon esprit dans tous les sens. Puis l'évidence me submergea : les niveaux d'exécution. Un vieux truc dont, il me semble, on ne parle plus tellement : les distributions gèrent tous ça automatiquement et il n'y a aucune raison d'y toucher. On en parle tellement plus que le "future" (systemd) traite ça comme un "legacy concept" (concept hérité du passé). Maintenant on appelle ça des "target".
Mais bon, je préfère écrire init 4 que systemctl isolate mon_truc.target. Et quand je vois la documentation de ArchLinux à propos de systemd pour créer des "target" personalisées, je penses que je vais continuer avec mon héritage du passé.

Dans Debian, le bureau graphique complet, multi-utilisateurs, réseau et tout est au niveau d'exécution 2. Les niveaux 3, 4 et 5 sont identiques au 2. Donc enlevez vos services peu utilisé du niveau 2 et laissez-les dans le niveau 3, exemple :

# update-rc.d slapd disable 2

Et voilà. Tout ça pour ça ! J'avais dis que c'était évident.

Après, vous pouvez, bien entendu, jouer avec les événements ACPI pour, par exemple, passer au le niveau 3 quand votre netbook est sur le secteur, associer une touche "Fonction" pour passer d'un niveau à l'autre, …

Et il paraît que c'est la tradition : nimage. C'est pour les femmes et c'est du nu ;-).

  • # inetd?

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

    Est-ce qu'inetd ne pourrait pas permettre obtenir le même effet?

    • [^] # Re: inetd?

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

      Oui et non, inetd n'est utilisable que pour les services réseaux et pas tous. MySQL, par exemple, ne semble pas pouvoir être démarré depuis inetd.

      Et inetd, c'est un service en plus qui ne sert qu'à griller des cycles processeurs, à part 5 minutes par mois.

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

    • [^] # Re: inetd?

      Posté par  . Évalué à 1. Dernière modification le 31 août 2012 à 13:17.

      Tout a fait, d'ailleurs systemd intègre le même système en natif.

      http://0pointer.de/blog/projects/inetd.html

      • [^] # Re: inetd?

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

        One of the core feature of systemd (and Apple's launchd for the matter) is socket activation, a scheme pioneered by inetd, however back then with a different focus. Systemd-style socket activation focusses on local sockets (AF_UNIX), not so much Internet sockets (AF_INET), even though both are supported. And more importantly even, socket activation in systemd is not primarily about the on-demand aspect that was key in inetd, […]

        Donc ça le fait, mais c'est pas l'objectif, c'est plus un effet de bord.

        Et ensuite pour configurer à la "inetd", systemd nécessite deux fichiers de configurations au lieu de un afin de simplifier le tout !?!

        You may wonder why in systemd configuration of an inetd service requires two unit files instead of one. The reason for this is that to simplify things we want to make sure that the relation between live units and unit files is obvious, […]

        Mais pas de soucis, je suis sur un projet qui va simplifier encore plus, il faudra 3 fichiers de configurations dans une syntaxe inspirée de brainfuck.

        Systemd est encore très loin de remplacer inetd, même Lennart le dit (à la fin du document que tu as mis en lien).

        "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

        • [^] # Re: inetd?

          Posté par  . Évalué à 2.

          … pourquoi arrêter ta citation juste avant le passage qui appuie mes propos ?

          However, systemd can also activate services on-demand when connections are incoming, if configured that way.

          Toujours du même lien…

          • [^] # Re: inetd?

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

            Parce que je n'ai jamais dis que ça ne le faisait pas, j'ai même dis que ça le faisait :

            Donc ça le fait [ … ]

            Ensuite j'ai précisé :

            • Que ce n'est pas le but premier
            • Qu'il y avait besoin de 2 fichiers de configurations au lieu de 1 pour le même effet
            • Que le créateur de systemd dit que ça le fait, mais pas toutes les options possibles avec inetd

            De ce fait je sentais pas nécessaire de citer une phrase qui appuyait ton propos alors que je l'appuyais moi-même (mais en plus nuancé).

            "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

            • [^] # Re: inetd?

              Posté par  . Évalué à 1.

              Au temps pour moi. Nous sommes donc d'accord.

  • # En voilà une astuce qu'elle est bonne

    Posté par  (site web personnel, Mastodon) . Évalué à 4. Dernière modification le 31 août 2012 à 13:27.

    Merci pour l'astuce. Je crois que je vais configurer mon laptop comme ça :-)

    Maintenant, juste une question de newbie en utilisation des niveaux d’exécution (disons que je ne me suis jamais amusé avec) : le fait d'appeler une commande init, ça ne va pas te déconnecter ou relancer certains programmes ? On peut lancer ça quand on est sous gnome/kde par exemple ? ça ne va pas redémarrer gnome/kde ?

    PS: j'imagine bien que ça va arrêter les services qui sont en K dans le nouveau level, mais pour les services qui sont communs à l'ancien et au nouveau ?

    • [^] # Re: En voilà une astuce qu'elle est bonne

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

      Non. Par contre certaines distributions n'ont pas les mêmes niveaux d'exécution, il faut bien regarder la documentation de ta distribution. Là, l'exemple est pour Debian et il n'y a rien d'autre à faire que la ligne donnée en mettant le nom du service.

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

      • [^] # Re: En voilà une astuce qu'elle est bonne

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

        En relisant ma réponse je trouve pas très clair mon "non" : non, ça ne va pas redémarrer ton Xmonad/Gnome/KDE/Xfce/… Tu ne vas même pas t'apercevoir que quelque chose se passe (à se demander si ça se passe).

        "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

      • [^] # Re: En voilà une astuce qu'elle est bonne

        Posté par  . Évalué à 1.

        Dans Debian, le bureau graphique complet, multi-utilisateurs, réseau et tout est au niveau d'exécution 2. Les niveaux 3, 4 et 5 sont identiques au 2.

        Par contre certaines distributions n'ont pas les mêmes niveaux d'exécution,

        Je comprends mieux alors, car à la lecture du journal ce passage m'avait troublé. J'ignorais que ce n'était pas partout pareil et pour moi 3 = mode texte alors que 5 = interface graphique.

        Je pensais naïvement que c'était quelque chose de standard… gravé dans la pierre… J'espère qu'au moins les distro sont d'accord sur les niveaux 1 et 6 (ouf, heureusement que systemd est arrivé pour faire du ménage et nous mettre au carré tout ce foutoir ! ;p)

        • [^] # Re: En voilà une astuce qu'elle est bonne

          Posté par  . Évalué à 0.

          Bonjour.

          Ah là, moi aussi, je pensais la même chose!

          Je me fais vieux. Va falloir que je me remette à la page comme on dit.
          En fait, tout ce passe dans le /etc/init.d/rc niv_execution qui va appeler
          un /etc/rcquelquechose.d

          A nous de faire les adaptations que l'on veut finalement.

          En tout cas sous Debian.

  • # /etc/init.d/xxxx start ?

    Posté par  . Évalué à 8.

    Le plus simple n'est pas de démarrer les services rarement utilisés à la main lorsque l'on en a besoin ?

    • [^] # Re: /etc/init.d/xxxx start ?

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

      Oui, cette méthode n'empêche rien. Mais il faut quand même les enlever des services démarrés au démarrage. Là on a surtout un mode "full power" qui va bien pour quand le netbook est sur le secteur.

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

    • [^] # Re: /etc/init.d/xxxx start ?

      Posté par  . Évalué à 3.

      Oui. Sur Debian je suis surpris que l'installer, en mode expert, ne propose pas la configuration du démarrage des services. Sur ma machine personnelle je suis toujours obligé de configurer post-install le non-démarrage de services comme RPC ou autres, dont l'usage sur un desktop me semble rarement utile.

  • # Comme sous Gentoo

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

    C'est exactement le principe recommandé sur Gentoo : un niveau « default » (sur secteur) et un « battery », la bascule étant automatisée par des scripts ACPI. C'est simple et ça marche du tonnerre.

    • [^] # Re: Comme sous Gentoo

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

      Bien vu, j'ai quitté Gentoo il y'a des années de ça et je ne reviens que très peu sur sa documentation.

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

  • # /etc/init.d/xxxx stop

    Posté par  . Évalué à 0.

    Intéressant, moi qui cherche a optimiser mon portable, je fait toujours un /etc/init.d/xxxx stop au service que j'utilise une fois par semaine ;)

    Merci aux personnes qui mon aidé a trouvé des solutions pour essayer d’écrire sans faute d’orthographe.

    • [^] # Re: /etc/init.d/xxxx stop

      Posté par  . Évalué à 5.

      Une fois qu'il est lancé c'est un peu tard. Et s'il ne sert à rien il ne consomme pas grand chose :]

      THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

Suivre le flux des commentaires

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