Readahead personnalisé pour réduire le temps de login2 min read

Je suis un maniaque assoiffé de performances. J’ai lu des discussions, wikis, écoutés toutes les conférences d’optimisation de gnome, et j’ai peut-être bloggé plusieurs fois à propos de mes nombreuses tentatives pour presser chaque seconde de vitesse de login possible.
Mais depuis six mois, j’étais un peu déprimé de constater que peu importe ce que je faisais, pas moyen, sur aucun de mes ordinateurs, d’abaisser le temps de login «à froid» en bas du seuil des 30 secondes. Qu’est-il arrivé aux belles promesses de «gnome devrait se connecter en trois secondes et c’est tout»? Je ne sais pas, et y penser m’attriste.
Or, ce fil de discussion dans les forums ubuntu a attiré mon attention il y a quelques mois (je n’ai eu le temps d’essayer que maintenant). En gros, on nous propose une technique pour profiler manuellement le processus de login, sans aucun risque, avec des promesses de grands gains de performance:
In my case, applying this readahead hack lead to a 10-second improvement in login speed in the worst-case scenario, and a remarkable doubling in login speed when the system idles at the login prompt for a few seconds.
J’ai donc mis ses dires à l’épreuve sur kaname (pentium M 1.7 GHz, 768 MiO de RAM, disque dur 5400 tours par minute). Ma séquence de login ne comprend pas openoffice quickstarter, deskbar et tomboy, mais comprend metacity 2.21.5 (avec composite activé) qui se lance par-dessus metacity 2.20, avant-window-navigator et specto.

Mes temps initiaux (secondes):

boot jusqu’à GDM: 28
login: 33.76

Après “PART 2: Hooking this into the login sequence”:

boot jusqu’à GDM: 30
login: 22.87

Après “PART 3: Hook into bootup sequence”:

boot jusqu’à GDM: 31
login: 14
Verdict: que du gain de performance pure, je suis passé de 34 secondes à 14 secondes, soit une réduction de 59%. C’est fascinant.
Je propose à quiconque a envie de soulager une grande portion de gens de trouver un moyen d’automatiser tout ce processus et/ou de faire en sorte que Ubuntu ou GNOME en fasse usage par défaut. Si vous voulez faire une différence dans la vie de millions de personnes, c’est ici que ça se passe.

Jeff

Comments

5 responses to “Readahead personnalisé pour réduire le temps de login”

  1. antistress Avatar
    antistress

    je ne comprends pas de quoi il s’agit, cette histoire de readahead
    en quoi consiste l’optimisation et pourquoi n’est elle pas configurée par défaut ?

  2. À ce que je comprends… heu non, à la réflexion, je ne comprends pas comment readahead fonctionne réellement. Mais ça fonctionne, généralement. Si cet article parle bien de la même chose: http://lwn.net/Articles/155510/
    «Readahead is a technique employed by the kernel in an attempt to improve file reading performance. If the kernel has reason to believe that a particular file is being read sequentially, it will attempt to read blocks from the file into memory before the application requests them. When readahead works, it speeds up the system’s throughput, since the reading application does not have to wait for its requests.»
    Je comprends ce paragraphe au niveau du langage, mais pas au niveau de la technologie. La phrase qui suit est également très intéressante: «When readahead fails, instead, it generates useless I/O and occupies memory pages which are needed for some other purpose.»
    Tiens donc! Ça explique pourquoi mes tentatives précédentes utilisant un readahead “automatique” (en installant seulement le paquet «preload») s’étaient soldées par une régression de performances! N’installez pas «preload», mieux vaut suivre ce guide et faire le profilage manuellement!
    > pourquoi n’est elle pas configurée par défaut ?
    Ça, je n’en ai aucune idée. Peut-être le fait que ceci varierait probablement d’un ordinateur ubuntu à un autre selon l’utilisation des logiciels (pas sûr), ou simplement que les développeurs ont déjà beaucoup de travail et qu’il faudrait qu’un Héros se dévoile pour accomplir cette tâche parmi la communauté?

  3. antistress Avatar
    antistress

    ok, ça me fait pener à l’unité de prédiction des pentium
    sinon, en quoi consiste la personnalisation du readahead ?

  4. > “Je suis un maniaque assoiffé de performances.”
    Un vrai maniaque utiliserait Gentoo ;D

  5. Depuis quand ça s’utilise, Gentoo? On n’utilise pas Gentoo, on ne fait que l’installer ;D