🕒 5 astuces pour rĂ©duire le temps de Boot sur une machine Linux

🕒 5 astuces pour rĂ©duire le temps de Boot sur une machine Linux

En contexte de Production, le moindre temps d'arrĂȘt d'un serveur est considĂ©rĂ© comme un impact potentiel. Il suffit qu'un traitement Ă©tait en cours sur la machine Linux, et son interruption peut s'avĂ©rer fatale !

IntĂ©rĂȘt

Des fournisseurs clouds comme AWS (Amazon Web Services) ou encore Azure ont des engagements de disponibilitĂ©s (SLA) qui peuvent monter jusqu'Ă  99.99%. La moindre minute d'indisponibilitĂ© peut venir rompre cet engagement, d'oĂč l'intĂ©rĂȘt de cet article pour rĂ©duire le temps de Boot sur une machine Linux

Aussi, l'informatique a beaucoup Ă©voluĂ©, notamment les mĂ©thodes de stockage. Autrefois, on bootait sur des disquettes đŸ’Ÿ. C'est pour cela que vous avez certainement du voir des devices comme /dev/fd0 (fd signifie Floppy Disk). Sur une VM, ou mĂȘme un serveur physique, il n'est plus possible de monter cela. Pour autant, le noyau Linux va parfois tout de mĂȘme essayer de le monter, malgrĂ© son absence !

1. L'analyse

Avant d'optimiser quoi que ce soit, il faut connaĂźtre son temps de boot, pour ensuite pouvoir le comparer et voir si du temps a pu ĂȘtre gagnĂ©.

Pour ce faire, exécuter la commande systemd suivante :

systemd-analyze

Voici un exemple de résultat obtenu :

Startup finished in 2.368s (kernel) + 14.710s (userspace) = 17.079s

Pour avoir un détail de la durée de chaque service systemd, exécuter la commande suivante

systemd-analyze blame

2. Désactiver les services inutiles

Maintenant que nous avons les détails de la durée au démarrage de chaque service, il est temps de désactiver ceux qui sont inutiles (comme Cups, bluetooth ou encore ModemManager etc...)

Identifier le service à désactiver et exécuter la commande suivante :

systemctl disable --now NOM_DU_SERVICE

3. Le fichier fstab

Comme dit plus haut, il y a parfois une disquette đŸ’Ÿ qui s'est faufilĂ© dans le fichier fstab.

Supprimer la ligne contenant /dev/fd0 dans le fichier /etc/fstab peut faire gagner de précieuses secondes !

4. Activer le boot en mode "minimal"

Si ton serveur est dédié à un seul rÎle (ex : runner GitLab CI, serveur de fichiers etc.), tu peux booter en mode "minimal" avec un target allégé :

systemctl set-default multi-user.target

5. Utiliser un kernel "light"

Souvent, il est possible de gagner quelques secondes en supprimant les modules du kernel inutiles au boot via un kernel Linux plus "light", ou carrément en passant au kernel optimisé pour la virtualisation.

Exemple : sur Debian/Ubuntu, installe le kernel linux-image-virtual comme ceci :

sudo apt install linux-image-virtual

Cela aura comme conséquence de désactiver certains drivers, et donc de booter plus rapidement !