Les guerres d'un Responsable Informatique

Vous êtes passionnés comme moi de machines basse-consommation, ARM, Atom : rendez visite à mon partenaire !

ArchLinux ARM et Seagate DockStar avec le kernel Linux 3.0

dimanche 18 septembre 2011 à 16:00 | Performance
Install ArchLinux on ARM

Depuis 1 an, j'utilise, pour mon auto-hébergement, un Seagate DockStar basé sur un processeur ARMv5, avec la version ARM de la distribution opensource GNU Debian Squeeze. Mais, il est temps d'évoluer, vers une distribution Linux plus moderne.

Passer de Debian à ArchLinux

Je suis un inconditionnel, de Debian. Mais, comme j'aspire à la modernité, j'ai envie de profiter des dernières versions des logiciels, mis à disposition pas la communautés des mainteneurs. Avec Debian, il faut apprendre la patience ... Au cours de mes lectures Internet, j'ai lu à plusieurs reprises des articles passionnants sur le blog de Weedfast / UbunBloX qui parlaient de ArchLinux une distribution qui a la particularité de toujours proposer les dernières versions des outils, dont le Kernel 3.0 de Linux !

UbunBlox le blog de Weedfast

En plus, un autre blogger, NicoLargo vient de réaliser une série d'article sur le caching et la montée en charge avec Varnish, un cache web aux performances étonnantes. Je voulais profiter de la dernière version de Varnish qui vient de publier sa version 3.0.

Nicolargo

En creusant un peu, j'ai même fini par aboutir sur ArchLinuxARM : ArchLinux directement pour les plateformes ARM :)

Préparation de ArchLinuxARM

Comment procéder pour créer une clé USB bootable avec ArchLinuxARM ? rien de plus simple:

  1. booter sur le firmware d'origine du DockStar
  2. cd /tmp
    wget http://jeff.doozan.com/debian/uboot/install_uboot_mtd0.sh
    chmod +x install_uboot_mtd0.sh
    ./install_uboot_mtd0.sh
    fw_setenv usb_rootfstype ext3
    
  3. sur un PC linux créer 2 partitions sur une clé USB, une principale de type Linux et une secondaire pour le swap
  4. formater les 2 partitions ainsi créées (la principale en ext3)
  5. sur cette clé USB réalisée les opérations suivantes :
  6. wget http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz
    tar -xzvf ArchLinuxARM-armv5te-*.tar.gz  # This will take a long time
    rm ArchLinuxARM-armv5te-*.tar.gz
    sync
    
  7. démonter votre clé USB, puis brancher là sur le DockStar
  8. rebooter le Seagate DockStar
  9. admirer !

Mise à jour de ArchLinuxARM avec le noyau 3.0 de Linux

Installation de Varnish 3.0 sur ArchLinuxARM

Varnish ne fait pas partie des paquets ArchLinuxARM, car officiellement, seules les architectures type x86 sont supportées. Mais, je le fais quand même !

  • taper la commande pacman -Syu yaourt
  • créer un autre user avec adduser et loggez vous avec ce user
  • taper la commande yaourt -Syu varnish gcc patch binutils fakeroot pkg-config make
  • modifier le fichier de configuration (Edit PKGBUILD ? Y), dans la zone arch, enlever i686 et x86_64 et remplacer par arch=('arm')
  • sauvegarder
  • et répondre non au reste sauf à la demande de build
  • et hop

Paramétrage de Varnish 3.0

Dans le fichier /etc/varnish.conf, car le paramétrage par defaut ne fonctionne pas :

OPTS="-s malloc,100M -l 10000000 -u nobody -g nobody -n /var/varnish/ -T localhost:8181 -f /etc/varnish/default.vcl"

Pour la configuration de Varnish proprement dit j'ai utilisé dans un premier temps la configuration de Nicolargo sur GitHUB

Informations complémentaires sur ArchLinuxARM

Pour toutes informations complémentaires, sur ArchLinuxARM, vous pouvez aller sur le site ArchLinuxARM

D'après mes premiers benchmarks, je gagne près d'une seconde, en passant de 3.3 sec à 2.4 sec en vitesse d'affichage ! Et mon score sur Google PageSpeed augmente de 3 points.

Google SpeedPage

Maintenant, à vous et à vos questions, qui comme toujours seront bienvenues.

J'ai un petit souci, la partie php, n'est pas cachée ?!!! Seules les images ... Mais, je ne trouve pas l'erreur ! C'est m0_o qui me l'a signalé sur Twitter

x-cache uncached varnish

A propos de Vincent RABAH

Directeur des systemes d'information

DSI/Responsable Technique depuis plus de 10 ans. Les Systèmes d'Informations complexes sont mon quotidien !
Expert en management, GreenIT et virtualisation de serveurs. Vous pouvez consulter l'ensemble de mon parcours.

I do speak English even if my blog is written in French ... Feel free to leave comments, I'll answer you !


Partagez cet article :



Fil des commentaires de cet article

12 commentaire(s) Commentaires »

  1. Bonjour Sagittarius,
    Désolé pour cette réponse tardive ... Tu peux trouver pleins d'article traitant de Nginx sur mon blog. Sinon, Lighttpd est réellement très bien, je l'ai utilisé pendant des années (peu d'empreinte mémoire, rapidité, ...). Passer à Nginx ne t'apportera que peu de chose !

  2. Bonjour,

    Avant de pouvoir mettre en place varnish, existe-t-il un tutoriel fiable pour installer un serveur lemp (nginx, php, mysql) sous Archlinux ?

    En effet, autant avec lighttpd, je trouve tout ce que je souhaite: j'ai installé sans difficulté un webdavs, un serveur web en https pour dolibarr, wordpress), autant avec nginx je reste un peu sur ma faim.

    d'avance merci.

  3. Salut Critidos,

    Je n'ai pas mis le DOckStar avec ARchLinuxARM en production, je fais juste des tests avec. Néanmoins, je suis les mailing lists ArchLinux et je ne procède qu'au mise à jour de sécurité, car avec une petite configuration comme le DockStar, cela peut devenir fastidieux ! Pour le DockStar en exploitation (qui héberge le blog), je reste sur Debian ;)

  4. Salut Vincent,

    cet article a déjà quelques mois et tu auras donc suffisamment de recule pour ma question je pense :).

    D'après certaines caractéristiques d'ArchLinux, cette distribution a l'air plus qu'intéressante. Par contre, les mises à jour fréquentes de paquets sont-elles vraiment adaptées à utiliser cette distribution pour un serveur ?
    (on en parle ici aussi: http://homeserver.diy.tom23.com/forum/viewtopic.php?f=11&t=26 ).
    Un OS de serveur se doit d'être stable et à jour. Que penser d'une distribution qui met si fréquemment ses paquets à jour ?

    Ici ou sur le forum de HS.DIY, ton expérience avec cet OS en tant qu'OS de dockstar m'intéresse :) Merci d'avance pour ta réponse :)

  5. Hello Vincent,
    La manière dont tu expliques l'installation de logiciel ne me semble pas si évidente que cela et si en plus tu dois modifier l'architecture pour chaque logiciel que tu installes, je ne vais pas apprécié...

    Mais sinon les arguments de ArchLinux sont tentants car les versions des softs sur la branche stable de squeeze datent...
    J'attend encore avant de tenter ArchLinux

  6. Rémi, je vais essayer cette conf ce weekend, pour voir si cela fonctionne mieux !
    Merci.

  7. Vincent,

    C'est au niveau de Varnish qu'il va falloir faire des modifs. La configuration de nicolargo est optimisée pour l'utilisation d'un wordpress, ce qui, je crois, n'est pas ton cas.
    Pour commencer, tu peux rajouter :
    sub vcl_deliver {
    if (obj.hits > 0) {
    set resp.http.X-Cache = "HIT";
    } else {
    set resp.http.X-Cache = "MISS";
    }
    }
    Ainsi avec un GET -Used http://mon_url, tu pourras voir d'un coup œil si tu as été servi du cache ou pas.
    Ensuite l'idée est d'enlever le cookie d'un contenu statique (par exemple un dossier images) :
    sub vcl_recv {
    if (req.url ~ "^/images") {
    unset req.http.cookie;
    }
    }
    Et forcer le TTL :
    sub vcl_fetch {
    if (req.url ~ "\.(png|gif|jpg)$") {
    unset beresp.http.set-cookie;
    set beresp.ttl = 3600s;
    }
    }

    Tu peux rajouter dans cet exemple php... ou augmenter le TTL globalement pour ton site.
    Il faudra te méfier des commentaires. Si tu caches toute la page (je sais pas comment est construit ton site), il se peut que les nouveaux commentaires ne s'affichent pas avec l'expiration du TTL. 2 solutions : purger le cache via l'api ou un http purge quand un commentaire est posté ou utiliser ESI ce qui veut dire retoucher au code de ton site.

    En espérant t'avoir donné des pistes, au plaisir !

  8. Jerome, il ne faut même pas hésiter, avec ça à nous les dernières versions de nginx et php-fpm :p

  9. Vraiment très intéressant !
    Je pense migrer vers ArchLinuxARM rapidement du coups ;=)

  10. Bonjour
    ArchLinuxARM va vite remplacer Squeeze sur mon DS ! C'est réellement énorme. Merci beaucoup!

  11. Merci Rémi, je vais poser une question bête, comment supprimer le cookie d'une page PHP ? En outre plusieurs personnes sur Twitter m'ont conseillé de mettre ceci dans le header de ma page PHP :
    <?php
    // seconds, minutes, hours, days
    $expires = 60*60*24*14;
    header("Pragma: public");
    header("Cache-Control: maxage=".$expires);
    header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');
    ?>
    Mais ça ne change rien ?!
    Merci

  12. Bonjour,

    Pour votre Varnish, jetez un oeil à varnishlog. Vous pouvez eventuellement filtrer sur les pages php pour voir le détail de la transaction et pourquoi ce n'est pas caché. S'il y'a un cookie sur la page, par défaut, Varnish ne la cachera pas.

    Bons tests ;-)

Laisser un Commentaire

Quelle est la cinquième lettre du mot nfjxjq ? :