Je suis sur un disque SSD où la fragmentation des fichiers ne devrait pas avoir d'importance, mais j'ai remarqué que le message "chargement du disque virtuel initial ..." dans grub prend plus de temps que je ne le pense. Cela dure environ 7 secondes avant que Plymouth ne s'exécute. Plymouth ne prend que 3 secondes environ (ce serait bien si elle commençait plus tôt et durait plus longtemps). Ensuite, l’écran lightdm/greeter apparaît en 2 à 3 secondes.
J'ai donc expérimenté un peu et lancé filefrag -v /boot/init*
et j'ai remarqué que mon noyau 4.4.0-53 semblait trop fragmenté:
File size of /boot/initrd.img-4.4.0-53-generic is 49027703 (11970 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 3: 4351562.. 4351565: 4:
1: 4.. 4095: 2334720.. 2338811: 4092: 4351566:
2: 4096.. 8191: 2330624.. 2334719: 4096: 2338812:
3: 8192.. 10239: 2355200.. 2357247: 2048: 2334720:
4: 10240.. 11969: 2408448.. 2410177: 1730: 2357248: last,eof
Je suis curieux de savoir comment un initrd.img
fragmenté affectera les performances de démarrage. Vaut-il la peine de défragmenter?
Bien sûr, je suis toujours ouvert aux suggestions pour rendre initrd.img
plus petit et plus rapide.
Remarque: Outre le disque SSD mSata et le disque SSD pleine taille, mon ordinateur portable est équipé d'un disque dur pleine taille contenant Ubuntu 14.04. Je suis donc intéressé par la défragmentation initrd.img
en général, pas seulement pour les SSD. La session de démarrage actuelle provient du SSD mSata, mais elle est limitée aux vitesses SATA II, contrairement aux disques pleine taille qui sont sur le bus SATA III.
systemd
Boot ChartSelon les commentaires ci-dessous, j'ai inclus le systemd-bootchart qui est généré en modifiant les paramètres du noyau grub avec:
GRUB_CMDLINE_LINUX_DEFAULT="splash vt.handoff=7 kaslr init=/lib/systemd/systemd-bootchart"
Le tableau de démarrage est enregistré dans: /run/log/bootchart-20161224-1801.svg
. Je devais utiliser gimp
pour l'ouvrir et l'exporter au format .jpg
à 75% de qualité pour l'adapter à la limite de 2,1 MB de Ask Ubuntu. Le fichier exporté est présenté ci-dessous:
Notez le délai de 9 secondes au début. Le délai "normal" de 7 secondes pour le message "Chargement du disque principal initial ..." dans le fichier grub est maintenant d’environ 10 secondes. Le temps supplémentaire probablement attribuable à la surcharge de systemd-bootchart .
Selon les commentaires (demandes) ci-dessous RAM
et cgroups
de /var/log/syslog
sont inclus dans cette modification.
Sortie de free -m
:
$ free -m
total used free shared buff/cache available
Mem: 7843 3167 820 1574 3854 2740
Swap: 7999 4 7995
Notez que SWAP n’est utilisé que pour tester OOM Killer
et peut être effacé. En effet, techniquement, il ne devrait pas être sur un disque SSD en premier lieu.
Sortie de grep cgroup < /var/log/syslog.1
:
$ grep cgroup < /var/log/syslog.1
Dec 24 15:22:50 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuset
Dec 24 15:22:50 Dell kernel: [ 0.000000] Initializing cgroup subsys cpu
Dec 24 15:22:50 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct
Dec 24 15:22:50 Dell kernel: [ 0.011642] Initializing cgroup subsys io
Dec 24 15:22:50 Dell kernel: [ 0.011645] Initializing cgroup subsys memory
Dec 24 15:22:50 Dell kernel: [ 0.011651] Initializing cgroup subsys devices
Dec 24 15:22:50 Dell kernel: [ 0.011653] Initializing cgroup subsys freezer
Dec 24 15:22:50 Dell kernel: [ 0.011655] Initializing cgroup subsys net_cls
Dec 24 15:22:50 Dell kernel: [ 0.011657] Initializing cgroup subsys perf_event
Dec 24 15:22:50 Dell kernel: [ 0.011659] Initializing cgroup subsys net_prio
Dec 24 15:22:50 Dell kernel: [ 0.011662] Initializing cgroup subsys hugetlb
Dec 24 15:22:50 Dell kernel: [ 0.011664] Initializing cgroup subsys pids
Dec 24 15:22:50 Dell kernel: [ 6.204710] cgroup: new mount options do not match the existing superblock, will be ignored
Dec 24 15:23:33 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuset
Dec 24 15:23:33 Dell kernel: [ 0.000000] Initializing cgroup subsys cpu
Dec 24 15:23:33 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct
Dec 24 15:23:33 Dell kernel: [ 0.010846] Initializing cgroup subsys io
Dec 24 15:23:33 Dell kernel: [ 0.010849] Initializing cgroup subsys memory
Dec 24 15:23:33 Dell kernel: [ 0.010855] Initializing cgroup subsys devices
Dec 24 15:23:33 Dell kernel: [ 0.010857] Initializing cgroup subsys freezer
Dec 24 15:23:33 Dell kernel: [ 0.010860] Initializing cgroup subsys net_cls
Dec 24 15:23:33 Dell kernel: [ 0.010861] Initializing cgroup subsys perf_event
Dec 24 15:23:33 Dell kernel: [ 0.010864] Initializing cgroup subsys net_prio
Dec 24 15:23:33 Dell kernel: [ 0.010867] Initializing cgroup subsys hugetlb
Dec 24 15:23:33 Dell kernel: [ 0.010868] Initializing cgroup subsys pids
Dec 24 15:23:33 Dell kernel: [ 7.338815] cgroup: new mount options do not match the existing superblock, will be ignored
Dec 24 15:45:25 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuset
Dec 24 15:45:25 Dell kernel: [ 0.000000] Initializing cgroup subsys cpu
Dec 24 15:45:25 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct
Dec 24 15:45:25 Dell kernel: [ 0.010844] Initializing cgroup subsys io
Dec 24 15:45:25 Dell kernel: [ 0.010847] Initializing cgroup subsys memory
Dec 24 15:45:25 Dell kernel: [ 0.010853] Initializing cgroup subsys devices
Dec 24 15:45:25 Dell kernel: [ 0.010855] Initializing cgroup subsys freezer
Dec 24 15:45:25 Dell kernel: [ 0.010857] Initializing cgroup subsys net_cls
Dec 24 15:45:25 Dell kernel: [ 0.010859] Initializing cgroup subsys perf_event
Dec 24 15:45:25 Dell kernel: [ 0.010861] Initializing cgroup subsys net_prio
Dec 24 15:45:25 Dell kernel: [ 0.010864] Initializing cgroup subsys hugetlb
Dec 24 15:45:25 Dell kernel: [ 0.010866] Initializing cgroup subsys pids
Dec 24 15:45:25 Dell kernel: [ 5.977461] cgroup: new mount options do not match the existing superblock, will be ignored
Dec 24 16:09:31 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuset
Dec 24 16:09:31 Dell kernel: [ 0.000000] Initializing cgroup subsys cpu
Dec 24 16:09:31 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct
Dec 24 16:09:31 Dell kernel: [ 0.010848] Initializing cgroup subsys io
Dec 24 16:09:31 Dell kernel: [ 0.010852] Initializing cgroup subsys memory
Dec 24 16:09:31 Dell kernel: [ 0.010858] Initializing cgroup subsys devices
Dec 24 16:09:31 Dell kernel: [ 0.010860] Initializing cgroup subsys freezer
Dec 24 16:09:31 Dell kernel: [ 0.010862] Initializing cgroup subsys net_cls
Dec 24 16:09:31 Dell kernel: [ 0.010864] Initializing cgroup subsys perf_event
Dec 24 16:09:31 Dell kernel: [ 0.010866] Initializing cgroup subsys net_prio
Dec 24 16:09:31 Dell kernel: [ 0.010870] Initializing cgroup subsys hugetlb
Dec 24 16:09:31 Dell kernel: [ 0.010871] Initializing cgroup subsys pids
Dec 24 16:09:31 Dell kernel: [ 6.663158] cgroup: new mount options do not match the existing superblock, will be ignored
Dec 24 18:00:44 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuset
Dec 24 18:00:44 Dell kernel: [ 0.000000] Initializing cgroup subsys cpu
Dec 24 18:00:44 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct
Dec 24 18:00:44 Dell kernel: [ 0.011644] Initializing cgroup subsys io
Dec 24 18:00:44 Dell kernel: [ 0.011647] Initializing cgroup subsys memory
Dec 24 18:00:44 Dell kernel: [ 0.011654] Initializing cgroup subsys devices
Dec 24 18:00:44 Dell kernel: [ 0.011656] Initializing cgroup subsys freezer
Dec 24 18:00:44 Dell kernel: [ 0.011658] Initializing cgroup subsys net_cls
Dec 24 18:00:44 Dell kernel: [ 0.011660] Initializing cgroup subsys perf_event
Dec 24 18:00:44 Dell kernel: [ 0.011662] Initializing cgroup subsys net_prio
Dec 24 18:00:44 Dell kernel: [ 0.011665] Initializing cgroup subsys hugetlb
Dec 24 18:00:44 Dell kernel: [ 0.011667] Initializing cgroup subsys pids
Dec 24 18:00:44 Dell kernel: [ 6.388658] cgroup: new mount options do not match the existing superblock, will be ignored
Dec 24 18:01:33 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuset
Dec 24 18:01:33 Dell kernel: [ 0.000000] Initializing cgroup subsys cpu
Dec 24 18:01:33 Dell kernel: [ 0.000000] Initializing cgroup subsys cpuacct
Dec 24 18:01:33 Dell kernel: [ 0.010850] Initializing cgroup subsys io
Dec 24 18:01:33 Dell kernel: [ 0.010854] Initializing cgroup subsys memory
Dec 24 18:01:33 Dell kernel: [ 0.010860] Initializing cgroup subsys devices
Dec 24 18:01:33 Dell kernel: [ 0.010862] Initializing cgroup subsys freezer
Dec 24 18:01:33 Dell kernel: [ 0.010864] Initializing cgroup subsys net_cls
Dec 24 18:01:33 Dell kernel: [ 0.010866] Initializing cgroup subsys perf_event
Dec 24 18:01:33 Dell kernel: [ 0.010868] Initializing cgroup subsys net_prio
Dec 24 18:01:33 Dell kernel: [ 0.010871] Initializing cgroup subsys hugetlb
Dec 24 18:01:33 Dell kernel: [ 0.010873] Initializing cgroup subsys pids
Dec 24 18:01:34 Dell kernel: [ 12.036550] cgroup: new mount options do not match the existing superblock, will be ignored
Notez que ce journal contient plusieurs bottes.
Après avoir mis en œuvre la réponse à la question et réponse, j’ai écrit ( Comment puis-je configurer un mot de passe pour la commande 'rm'? ) dans lequel un mot de passe de script wrapper protège la commande rm
, la vitesse de démarrage a doublé.
Voici le nouveau graphique:
Je ne pense pas que la défragmentation soit votre problème, mais vous pouvez le faire ...
Dans terminal
...
tapez man update-initramfs
# pour en savoir plus sur cette commande.
puis tapez Sudo update-initramfs -c
# pour créer un nouveau fichier à partir de zéro.
puis tapez reboot