Comment faire un strace sur tous les processus Apache ?


Serveur Apache
Aujourd'hui, nous allons voir une petite commande très utile pour débugger un serveur web. Celle-ci permet de faire un strace sur tous les processus Apache qui tournent sur une machine, de manière automatique. Avec cette technique, vous pourrez facilement identifier les goulets d'étranglement avant la mise en production d'un service, ou mettre la main sur une procédure qui bloque.

Gold Shell

Voici la commande en question, pour une distribution à base de RPM :

ps awux | grep sbin/httpd | awk '{print"-p " $2}' | xargs strace -f

Ou celle-ci, pour une distribution à base de Debian, car le nom du binaire est "apache" au lieu de "httpd" dans la plupart des cas :

ps awux | grep sbin/apache | awk '{print"-p " $2}' | xargs strace -f

Il ne vous reste plus qu'à analyser le résultat avec vos yeux d'administrateur système avertis.


9 Commentaires pour "Comment faire un strace sur tous les processus Apache ?"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Très chouette ce tableau d'art moderne :)

    RépondreRépondre
    Mr Xhark , le 27 mars 2013 à 20:50
  •  

    Hello,
    C'est bien pour un serveur qui fait quelques requêtes, mais pour une machine qui fait plusieurs milliers de hits à la secondes...

    RépondreRépondre
    Skydiverss , le 27 mars 2013 à 21:17
  •  

    Hello,

    La commande est vraiment très bien et permet de faire un rapide débug.
    @Skydiverss, tu sort le serveur de la ferme de loadbalancing et tu fais tes essais tout seule sur le serveur :) Si un machine fais beaucoup de HIT, tu ne devrais pas avoir qu'un serveur je pense ^_^

    Djerfy

    RépondreRépondre
    Djerfy , le 27 mars 2013 à 21:59
  •  

    @Mr Xhark : ;-)

    @Skydiverss : yep, c'est justement la raison pour laquelle il faut plutôt l'utiliser avant la mise en production d'un service.

    @Djerfy : +1

    RépondreRépondre
    pti-seb , le 27 mars 2013 à 22:01
  •  

    En fait il y a une astuce, initier une connection en localhost avec telnet, identifier le process http associé et lancer le strace sur ce process
    Dans ma boite on a plusieurs milliers de serveurs web, si a chaque fois on devait en sortir un pour faire du debug...

    RépondreRépondre
    skydiverss , le 27 mars 2013 à 22:23
  •  

    @skydiverss : pas mal comme technique aussi. Je n'y avais pas pensé.

    RépondreRépondre
    pti-seb , le 27 mars 2013 à 22:34
  •  

    se connecter en telnet sur apache2? lol comment on peut faire sa/quel port? juste par curiosité.

    RépondreRépondre
    sl33k , le 28 mars 2013 à 15:21
  •  

    @sl33k : regardes ici.

    RépondreRépondre
    pti-seb , le 28 mars 2013 à 15:25
  •  

    Mhmm, un truc m'echappe... A quoi sert de "chercher" le PID d'apache pour ensuite en lancer un nouveau ?

    pour s'attacher a un processus existant, c'est "strace -o pid xxx" ! -f LANCE le processus, attends son PID et s'y attache. Sous Linux un "ps axf" vous donnera la liste des processus et dependances parents/enfants, il suffira donc de s'attacher a celui qui nous interesse (en fonction evidement du type de MPM Apache utilise pour peu qu'on reste uniquement sur Apache).

    Enfin, pour trouver le pid d'un processus ya plus simple que l'artillerie lourde deployee dans l'article... "pidof" est votre ami.

    RépondreRépondre
    Adminator , le 8 avril 2013 à 04:55
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum