Pour augmenter d’un cran la vélocité de ma machine sous Manjaro, je vais installer deux paquets supplémentaires qui vont me permettre de « booster » mon système : Linux-Ck et mkinitcpio.
- Linux-Ck est un noyau Linux optimisé sur l’architecture de son Cpu.
- mkinitcpio est un script shell utilisé pour créer un environnement optimisé, qui se chargera en premier en mémoire.
nb : Attention toute fois, les interventions qui vont suivre ne sont pas sans risque ! Un kernel Panic est vite arrivé …
Situation de départ
Pour pouvoir mesurer les biens faits de l’optimisation, je vais me baser sur le temps de démarrage complet. Il est aussi possible de faire des « benchmarks » sur d’autres critères.
Tout d’abord, voici les caractéristiques de ma machine sous Manjaro avec la commande inxi :
inxi -F System: Host: manjaro-pc Kernel: 3.18.9-1-MANJARO x86_64 (64 bit) Desktop: Cinnamon 2.4.8 Distro: ManjaroLinux 0.8.12 Ascella Machine: Mobo: Acer model: Veriton M4620G v: v1.0 Bios: Acer v: P01-A2 date: 02/27/2013 CPU: Dual core Intel Pentium G2130 (-MCP-) cache: 3072 KB clock speeds: max: 3200 MHz 1: 1787 MHz 2: 1697 MHz Graphics: Card: Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller Display Server: X.Org 1.17.1 driver: intel Resolution: 1280x1024@75.02hz, 1920x1080@60.00hz GLX Renderer: Mesa DRI Intel Ivybridge Desktop GLX Version: 3.0 Mesa 10.5.3 ***
free -m total utilisé libre partagé tamp/cache disponible Mem: 13950 2134 3212 408 8602 11118 Partition d'échange: 9145 0 9145
Analyse avant modification et sans optimisation:
systemd-analyze Startup finished in 5.440s (kernel) + 1min 34.779s (userspace) = 1min 40.219s
Une machine pas très puissante en terme de Cpu, qui est assez lourde avec Cinnamon et son temps de démarrage complet prend plus d’une minute :-(
Optimisation de mon système GNU/Linux
Linux-CK
Pour installer Linux-Ck, il faut ajouter son dépôt dans pacman.conf :
- Édition du fichier pacman.conf :
sudo nano /etc/pacman.conf
[repo-ck] SigLevel = PackageRequired Server = http://repo-ck.com/$arch
sudo pacman-key -r 5EE46C4C && sudo pacman-key --lsign-key 5EE46C4C
pacman -Syy
Avant d’installer le kernel optimiser à mon Cpu, je vais détecter sa famille :
gcc -c -Q -march=native --help=target | grep march
Exemple dans mon cas :
-march= ivybridge
Pour connaître les familles d’architectures Cpu supportées, aller voir le wiki de Repo-ck.
J’installe donc le kernel par rapport à mon Cpu :
sudo pacman -S ck-ivybridge :: Il y a 8 membres dans le groupe ck-ivybridge : :: Dépôt repo-ck 1) broadcom-wl-ck-ivybridge 2) linux-ck-ivybridge 3) linux-ck-ivybridge-headers 4) nvidia-304xx-ck-ivybridge 5) nvidia-340xx-ck-ivybridge 6) nvidia-ck-ivybridge 7) virtualbox-ck-guest-modules-ivybridge 8) virtualbox-ck-host-modules-ivybridge
Sur mon PC je n’ai pas de carte Gpu Nvidia, je vais installer seulement le kernel et le module de VirtualBox :
sudo pacman -S linux-ck-ivybridge linux-ck-ivybridge-headers virtualbox-ck-host-modules-ivybridge
Une fois tout ce beau petit monde installé, prise en compte au niveau du Grub :
sudo grub-mkconfig -o /boot/grub/grub.cfg
Et pour finir, je redémarre ma machine et relance d’une analyse :
systemd-analyze Startup finished in 4.899s (kernel) + 23.446s (userspace) = 28.345s
Y a pas photo ! \o/
Au passage, je suis passé au kernel 4.0.* :
uname -r 4.0.0-1-ck
mkinitcpio
- Installation de mkinitcpio :
sudo pacman -S mkinitcpio
udevadm info --attribute-walk -n /dev/sda1 | grep 'DRIVERS=="[^"]' DRIVERS=="sd" DRIVERS=="ahci"
sudo nano /etc/mkinitcpio.conf
MODULES="i915 ahci sd_mod ext4" ##j'ajoute les modules détectés au préalable avec la commande udevadm BINARIES="fsck fsck.ext4" ## les binaires pour la détection du système de fichier, dans mon cas ext4 HOOKS="base" ## je ne laisse que le minimum COMPRESSION="lzop" ##lzop est plus rapide par rapport à gzip, cependant dommage qu'il n'y a pas la prise en charge de pigz
sudo mkinitcpio -p linux-ck ==> Building image from preset: /etc/mkinitcpio.d/linux-ck.preset: 'default' -> -k /boot/vmlinuz-linux-ck -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-ck.img ==> Starting build: 4.0.0-1-ck -> Running build hook: [base] ==> Generating module dependencies ==> Creating lzop-compressed initcpio image: /boot/initramfs-linux-ck.img ==> Image generation successful ==> Building image from preset: /etc/mkinitcpio.d/linux-ck.preset: 'fallback' -> -k /boot/vmlinuz-linux-ck -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-ck-fallback.img -S autodetect ==> Starting build: 4.0.0-1-ck -> Running build hook: [base] ==> Generating module dependencies ==> Creating lzop-compressed initcpio image: /boot/initramfs-linux-ck-fallback.img ==> Image generation successful
Je redémarre de nouveau ma machine :
sudo reboot
Une fois reconnecter à ma session, je relance une analyse :
systemd-analyze Startup finished in 2.416s (kernel) + 21.780s (userspace) = 24.196s
J’ai encore gagné environ 4 secondes au démarrage complet de ma Manjaro sous Cinnamon ! :-D
Conclusion
- Temps de démarrage total avant optimisation : 1min 40.219s
- Temps de démarrage total après optimisation : 24.196s
Soit un gain de 1 minutes et 16,023 secondes de gagné. Je ne me considère pas un « kéké » du tunning mais là faut bien avouer que c’est assez intéressent comme gain. Il ne me reste plus qu’à faire la même optimisation sur mon netbook, pour mesurer les bénéfices (vélocité et consommation de la batterie) et j’actualiserai l’article.
Tu pense que ça aurait un intérêt pour moi ? :p
Startup finished in 1.938s (kernel) + 1.911s (userspace) = 3.850s
heuu comment dire ? enfoiré pour rester poli ^^
Tu peux m’en dire plus sur ta conf :-D
Je suis effectivement curieux de voir les résultats sur un Netbook. Les optimisations de ce genre sont en effet généralement plus probantes sur des machines très contraintes. Par contre, faut être salement patient…
J’ai rien fait pour optimiser en plus, c’est sur Arch. Mais par contre le PC met plus de temps à démarrer que ça ^^
Voici ma conf : https://lut.im/dn6Tw4uc/df8xoL9r, avec un SSD peu rapide :)
le temps de démarrage de ma machine, me laisse le temps pour boire mon café le matin ^^
Ah ok, effectivement c’est plus rapide avec un SSD :-)
Pour info, y’a énormément de machines qui devraient utiliser le profil « core2 ». C’est notamment mon cas (Pentium T3200), et ceux de toute la génération Pentium avant les core iX.
Bonjour !
Article soumis au journal du pirate : https://infos.mytux.fr/s/gulhet/arch_linux_manjaro_optimiser_sa_machine_avec_linux-ck_et_mkinitcpio
Si ça peut aider à sa diffusion (et au passage je fais de la pub pour je journal …)
Ah merci ! c’est trop d’honneur :-D
no problemo pour la pub du journal !
EDIT : j’ai rajouté le lien dans ma blogroll :-)
Tu est sur du résultat ?
car moi j’ai systemd-analyze
Startup finished in 2.172s (firmware) + 6.639s (loader) + 2.655s (kernel) + 22.703s (userspace) = 34.170s
Alors que du bouton power a l’arrivé sur le bureau sa met une plomb
Je comprend pas
Ce compteur de Systemd ne prend pas en compte le chargement du bureau, qui est le dernier morceau (X.org notamment). Chez moi ajoute 6 à 7 secondes de BIOS plus 10 secondes de KDE qui ne sont pas pris en compte, et effectivement, ça peut paraître lent.
si tu veux plus de détails pour trouver ce qui prend le plus de temps :
[code lang= »shell »]
systemd-analyze blame
[/code]
Plutôt systemd-analyze blame ;)
oups… corrigé, merci :-D
Est-ce que si on installe le kernel ck l’ancien sera dispo dans GRUB ?
Oui, le fait d’installer un nouveau kernel, les anciens sont toujours présent.
Cool. Et avec mkinitcpio on ne touche qu’au noyvau ck ?
sur le principe : oui.
Mais je n’ai pas testé…
9.822s ModemManager.service
6.721s NetworkManager.service
Ah bah de toute façon une erreur de clé ^^
Je conseille cette vidéo en complément et si vous avez des problèmes de clé : https://www.youtube.com/watch?v=SaW-yqVGu5wa
1 minute 40 !! ça fait beaucoup, il devait y avoir un souci quelque part Oo moi sur ma Arch je démarre en 12.00 secondes à peu prés (tout compris = EFI, loader, kernel & Cie) je ne gagne q’une ou deux secondes avec linux-ck sur du Haswell i5 à 3.30 Ghz
salutm
thksm j4 avais aussi un probleme de clef et de telecharement sur depotm la routine auoi. bien le systemd-analyze blame, ca permet d analyser ce au on peut virer ^^. C le tuto le + propre sur le noyau linux ck.
ps : chez moi ca met Startup finished in 19.073s (kernel) + 4.541s (userspace) = 23.614s car je dois taper le chiffrement du DD, je ne pense pas aue ca puisse se desactiver pour tester sans le chiffrement. Ah oui 4G et pas de swap sur un core2.
rethks :-)
Salut, pour la compression « pigz » il suffit de l’installer
sudo pacman -S pigz
Ensuite on l’ajoute dans /etc/mkinitcpio.conf à la section:
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use ‘cat’ to create an uncompressed image.
#COMPRESSION= »gzip »
#COMPRESSION= »bzip2″
#COMPRESSION= »lzma »
#COMPRESSION= »xz »
#COMPRESSION= »lzop »
#COMPRESSION= »lz4″
COMPRESSION= »pigz
Merci pour cet article.
Merci jwm-testeur pour l’utilisation de pigz :-)
A savoir, dans mon cas dorénavant je remplace toujours gzip par pigz (à la base c’était pour Proxmox mais maintenant je le fais partout) : https://memo-linux.com/proxmox-booster-vzdump-avec-pigz/
Hello tout-le-monde!
Startup finished in 2.135s (kernel) + 3.298s (userspace) = 5.434s
J’ai un Brix Gigabyte compact entrée de gamme avec un SSD et 8 G de RAM. Je suis sur Manjaro depuis 2 jours (depuis des années sous Ubuntu ou dérivés). Je suis époustouflé par la vitesse de démarrage par rapport à Ubuntu Mate ou même LinuxLiteOS (XFCE / xerial 16.04). Donc, je vais laisser tomber l’optimisation (pour gagner une demie-seconde?)
Je sens que je vais l’installer aussi sur ma mémé Eeebox B202 asthmatique à la place de LinuxLite…
Bienvenue à toi dans le monde merveilleux de la Manjaro ! :-)