🕒 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 !