27

[Arch Linux / Manjaro] Optimiser sa machine avec Linux-Ck et mkinitcpio

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
***

La RAM installée :

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
    
  • Ajout du dépôt
  • [repo-ck]
    SigLevel = PackageRequired
    Server = http://repo-ck.com/$arch
    
  • Ajout de la clé d’authentification :
  • sudo pacman-key -r 5EE46C4C && sudo pacman-key --lsign-key 5EE46C4C
    
  • Mise à jour du système de dépôt :
  • 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
    
  • Détection des drivers pour le disque :
  • udevadm info --attribute-walk -n /dev/sda1 | grep 'DRIVERS=="[^"]'
        DRIVERS=="sd"
        DRIVERS=="ahci"
    
  • Modification du fichier de configuration :
  • 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
    
  • Création de la nouvelle image avec les nouveaux paramètres :
  • 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.

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

27 commentaires

  1. Tu pense que ça aurait un intérêt pour moi ? :p
    Startup finished in 1.938s (kernel) + 1.911s (userspace) = 3.850s

  2. heuu comment dire ? enfoiré pour rester poli ^^
    Tu peux m’en dire plus sur ta conf :-D

  3. 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…

  4. le temps de démarrage de ma machine, me laisse le temps pour boire mon café le matin ^^

  5. 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.

  6. Ah merci ! c’est trop d’honneur :-D
    no problemo pour la pub du journal !
    EDIT : j’ai rajouté le lien dans ma blogroll :-)

  7. 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

  8. 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.

  9. si tu veux plus de détails pour trouver ce qui prend le plus de temps :
    [code lang= »shell »]
    systemd-analyze blame
    [/code]

  10. Oui, le fait d’installer un nouveau kernel, les anciens sont toujours présent.

  11. 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

  12. 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 :-)

  13. 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.

  14. 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…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *