Florent Peterschmitt

systemd + btrfs + journald flush = long boot time

Bon, il n’est maintenant plus tellement la peine de rappeler que j’utilise systemd comme init.

Par contre, btrfs, c’est assez neuf. J’ai hésité pendant un moment, surtout quand Sacha m’a dit avoir perdu sa machine car btrfs a eu la bonne idée de plantouiller (vieille version de noyau, hein, genre 3.4 ou un truc comme ça).

Bref, venons-en au fait : à chaque démarrage de ma machine, l’unité systemd-journal-flush.service (Flush Journal to Persistent Storage) mouline pendant plus de 30 secondes. Je veux bien mais… la machine vient seulement de démarrer, il n’y a normalement pas grand chose à écrire sur le disque… et il est sollicité comme jamais.

Ceci dit, je n’ai jamais remarqué le problème avec ext4, et il est rencontré sur des Fedora, voir #1006386 chez RedHat alors que je suis sur Gentoo et n’est pas récent.

À la fin du post, on trouve ceci :

btrfs fi defrag /var/log/journal/*/*

Eh beh ça fonctionne…

Fuck. On est sur Windows maintenant ? On a des programmes foireux ou des systèmes de fichier qui régressent, ou les deux ? La cause n’est pas la multiplicité des fichiers, pas plus que leur taille :

┌(amidala)─(0)──(/home/wrk)
└─> tree /var/log/journal/
/var/log/journal/
├── 39608e9264f183478332d7ff55b7cdf2
│   ├── system.journal
│   ├── user-1000.journal
│   ├── user-1001.journal
│   ├── user-1002.journal
│   ├── user-1003@83a1f3012ae34bd1b86fd5dac6689c05-000000000001ce49-00051ed86d1efb13.journal
│   └── user-1003.journal
└── remote

2 directories, 6 files
┌(amidala)─(0)──(/home/wrk)
└─> ls -lh /var/log/journal/39608e9264f183478332d7ff55b7cdf2/
total 107M
-rw-r-----. 1 root systemd-journal  64M Sep 12 10:40 system.journal
-rw-r-----+ 1 root systemd-journal 8.0M Aug 10 15:00 user-1000.journal
-rw-r-----+ 1 root systemd-journal 8.0M Sep 11 23:58 user-1001.journal
-rw-r-----+ 1 root systemd-journal 8.0M Sep 12 10:30 user-1002.journal
-rw-r-----+ 1 root systemd-journal 8.0M Sep  3 19:11 user-1003@83a1f3012ae34bd1b86fd5dac6689c05-000000000001ce49-00051ed86d1efb13.journal
-rw-r-----+ 1 root systemd-journal 8.0M Sep  3 19:12 user-1003.journal

En revanche, le wiki de btrfs nous apprend que ce type de défragmentation ne s’intéresse qu’aux métadonnées. Hum. Affaire à suivre.

Un jour, quand je serai grand, j’irai lire le code de systemd.

Édition du 17/09/2015 : la suite ici

Comments