Par la force du barbu à poils drus !

le 13 novembre 2009 à 09:49 par mrboo

Bon je commence à pédaler dans la choucroute avec ma part Gandi.

Résumé de la situation :
Ce blog, http://newea.fr et http://autoff.com sont installés sur une part Gandi depuis quelques jours, cela représente environ 1000 VU/jour.

Rien à redire sur le support Gandi : réactifs, attentionnés même.
Sur le papier le principe est de permettre une flexibilité des ressources disponibles pour un serveur: besoin de plus de ressource ? hop! on ajoute des « parts » de serveurs (de manière automatique ou planifié et tout doit rouler) en réalité c’est un peu plus compliqué.
Je suis parti de la distribution GandiAI (une Ubuntu) et j’ai pris la main en « root ».
Comme expliqué dans ce billet, j’ai mis en place un cache Wordpress sur memcache pour ce blog, ainsi que pour newea.fr
Résultat quand le cache est appelé, les pages s’affichent en une fraction de secondes.

Mais malgré tout il arrive régulièrement (~une fois par jour / 2 jours) que le serveur se noie: Les instances d’Apache s’accumulent jusqu’à saturation du serveur.
J’ai beau ajouter des parts Gandi rien n’y fait :

console
Le pire, c’est que ce matin cela a eu lieu de nouveau après un reboot…

Voici la conf de mpm_peruser_module :
MinSpareProcessors 1
MaxProcessors 20

Au cas où j’ai ajouté le module mod_evasive (pour limiter les rush de la part d’une seule IP)

La distrib Gandi est livrée avec une tripotée de scripts dans le répertoire /etc/gandi (pour le monitoring j’imagine)
Bref, j’ai une distrib et une conf Apache qui semble poser problème et surtout ne semble pas me permettre de profiter de la flexibilité du système Gandi…

Le problème c’est que je n’ai pas trop le temps de faire joujou en ce moment : J’aurai préféré passer une heure sur la finalisation de la gestion des groupes de Newea ce matin…
J’hésite entre 2 options :
- Repartir sur une part Gandi avec une Debian « propre »
- M’offrir un Kimsufi
Sauf si ce type de problème parle à quelqu’un dans la salle ? (ou ils sont tous au forum PHP ;) ?)

Sinon aujourd’hui c’est la journée mondiale de la politesse ;) :

15 commentaires pour “Par la force du barbu à poils drus !”

Aller au dernier commentaire | retourner à la racine du blog
  1. 1sid dit :

    T’as installé mod_status pour voir ce qui faisait vraiment monter ton Apache ?
    http://httpd.apache.org/docs/trunk/mod/mod_status.html

    C’est peut être l’install WP qui charge le serveur, pas le serveur lui même.

    Ceci dit, une Debian nue sera toujours mieux qu’une Ubuntu avec pleins de trucs installés par défaut qui servent à rien :-)

  2. 2Julien dit :

    Ton load average est énorme ! Avec un RPS IV et près de 3 500 VU / jour pour 42 000 pages vues sur weesk.com j’avais un load average de 0,12 au max. Je pense que tu fais trop travailler le serveur via apache, un système de cache php / html conviendrait mieux, moins rapide certes mais moins gourmand en ressource.
    Enfin je dis ça avec une toute petite expérience en la matière … Mais c’est sûr qu’avec un load average à 52 il peut que mouliner ton serveur.

  3. 3mrboo dit :

    sid> thx je vais tester

    Julien> les instances d’Apache semblent s’accumuler à l’infini malgré des timout courts, c’est bien là le problème. Le CPU et la RAM d’un RPS IV n’ont absolument rien à voir ;)

  4. 4Julien dit :

    Ok bon … J’attends la bonne réponse avec impatience alors :)

  5. 5Jérémy dit :

    T’aurais pas un problème de keepAlive dans la conf apache…

    Avec une mauvaise config (j’ai eu le même pb avec une dedibox sur unbuntu il y a 2/3 ans) Les param sont nickel pour faire du dev : des connexion qui restent longtemps ouvertes…
    Mais pausent de sérieux problème quand il y a de nombreux visiteurs. Logique, car une connexion qui reste ouverte n’est pas repris par quelqu’un d’autre et donc, tu te retrouve avec 100 process apache ouverts a ne rien faire (par contre, ca n’explique pas ton load average) pendant que les autres visiteurs attendent d’avoir une connexion.

    essai avec un
    MaxKeepAliveRequests 100
    KeepAliveTimeout 3

    diminue aussi le MaxRequestsPerChild pour avoir des cycle plus court
    MaxRequestsPerChild 10

    Bizare aussi que le user affecté aux process apache soit adminftp ? C’est bien lui dans ta conf apache ? tu ne serais pas attaqué ?

  6. 6mrboo dit :

    Jérémy> je viens de découvrir un fichier de conf Gandi avec un keepalive à On (alors que je l’avais désactivé dans la apache.conf) ….
    je vais voir ce que ça donne.

    Sinon pour l’adminftp c’est une pirouette de Gandi pour donner accès au compte non root qu’ils configurent par défaut.

  7. 7Jérémy dit :

    le keepalive est très utile (évite d’avoir 50 connexion par utilisateur pour afficher les images/css de chaque page) mais avec un timeout assez bas.

  8. 8mrboo dit :

    Jérémy> ok je viens de changer la conf de cette manière, on verra bien si ça tient ;)

  9. 9Gonzague dit :

    j’avais le même souci sur un bon gros Kimsufi , les 3 Go de ram morflaient puis ça attaquait le Swap et le load montait montait montait et boom adieu serveur :-D

  10. 10mathias dit :

    My 2 cents : Pourquoi ne pas prendre un abonnement typepad (même un abo business) et ne plus se soucier de tout cela ? C’est une plateforme utilisée par plein de bloggers pro, qui tient la charge et semble tout aussi efficace que wordpress.
    Tout le temps dégagé par ces tracas techniques pourraient ainsi être affectés a ton business ? Parce que au final, le visiteur il ne voit qu’un blog et se fout de savoir que derrière il y a gandi et des apaches ;-)
    Bon après c’est vrai que par pur exercice intellectuel et si il y a rien d’autre d’urgent à traiter avant, je comprend le challenge…

  11. 11mrboo dit :

    mathias> franchement Typepad ne me tente pas du tout pour le blogging + je développe pas mal d’autres choses (Newea et AutoFF) qui demandent un vrai serveur + c’est toujours plus intéressant d’apprendre ;)

  12. 12pascal dit :

    D’après le screenshot:

    - une seule part active sur la VM
    - tous les process apache bossent en CPU (essayent, du moins)
    - pas d’iowait, pas de system, que du steal contre le cpu: c’est vraiment 100% cpu, le syndrome wordpress ;)

    Ca vaut sa cacahuette de tester une debian récente avec un mpm prefork (un peu plus léger que peruser, qui sert a gérer quelques vhosts en les séparant par uid).

    C’est là que je comprends pas tout, pourquoi 54 avec cette config peruser ? 104 processus, mais surtout 60 running ? Ce stade atteint, c’est dur à tenir même sur une machine dédiée.

    Diminuer RequestPerChild à 10 va te faire grimper le %sys, il y aura un ratio d’exit/fork par requete haut, et peut-etre moins de charge tenue. KeepAlive donne beaucoup de process effectivement, mais sleeping.

    Avec une unique part comme ici, je recommanderais de pas dépasser une dizaine de processus simultanés gavés sur le CPU, et de bencher ça en montant lentement le nombre de processes. Ca ira un peu moins vite lors des pics, mais le but est de remplir le cache sans écrouler la machine pour qu’elle revienne rapidement. Avec 60 processus simultanés, ça devient presque impossible.

    Et vraiment de passer à prefork si tu n’as pas besoin de séparer les vhosts.

  13. 13mrboo dit :

    pascal>
    merci pour les infos, je vais essayer de tuner ça au mieux.
    Par contre, j’ai un peu de mal avec le fichier de conf de GandiAI
    (/etc/apache2/conf.d/gandiai) qui me parle de ProcessorWaitTimeout, MinMultiplexers… sans que je trouve beaucoup de doc sur le sujet sur Google.

    Si j’ai le courage je passerai clairement sur une Debian.

  14. 14Gonzague dit :

    moi je dis : essaye movable type :) (alors que je suis un avocat de wordpress haha)

  15. 15Quentin dit :

    Sinon htop c’est beaucoup mieux que top :-)

Vu sur Twitter

Voici quelques tweets qu'il me semble intéressant de relayer ici.

@LaFermeDuWeb #jQuery 1.4.2 est released: 2 fois plus performant par rapport à la version 1.4.1 ! http://bit.ly/aQg5cX
@schiste ACTA la partie dédiée à "internet enforcement" a fuité et est téléchargeable ici http://is.gd/8SKte
@julie_adore Pour visionnage de cette vidéo, le Crédit Coopératif s'engage à verser 5 centimes à une association ! http://bit.ly/CarteAgir #CarteAgir
@jromanetto Top des extensions Firefox utiles au référencement http://bit.ly/cLEz7v
@Oelita RT @MeaganFrancis: Fantastic post from @bringthefamily about photographing your family adventures: http://bit.ly/cJaI6Y
@lefakir la tablette pour les barbus http://www.ifreetablet.com/indexEN.php
@vendeesign RT @shatus: <3 RT: @startupz: RT @eMeRiKa: effet "prise de photo" en jquery, diffile à utiliser dans un site mais sympa http://bit.ly/aUx2ma
@SLIxx Hovercards: Twitter Launches New Profile Preview Feature - http://bit.ly/bim1oJ /via @mashable // l'aperçu du profil en beta
@Korben HipHop, le compilateur PHP -> C++ de Facebook http://www.korben.info/hiphop-le-compilateur-php-de-facebook.html
@Alban Ohh le TimeWarp sur @Mailchimp ça me parais terrible comme fonctionnalité (mais j'en ai pas l'utilité)
@emob OTABLO! le nouveau projet signé Emob ^^ http://tinyurl.com/otablo (please RT)
@kiedisfr RT 7 Reasons Why Developers are Deserting iPhone Apps and return to web technologies | SitePoint http://bit.ly/axWOBo /via @PierreTran
@vincentabry Ustream lance le Pay Per View (paie par vue) http://goo.gl/fb/nTGK
@tebenas [RWW Fr ]La Quadrature du Net pourrait cesser son combat faute de financements http://bit.ly/6W1lTg
@adriangaudebert Aujourd'hui nous lançons le #quadratureday, tous ensemble, sauvons @laquadrature ! http://bit.ly/7Y7psP @mrboo @korben @nitot @epelboin
@xuoan The 4 Big Myths of Profile Pictures « OkCupid http://okcupid.com/z/i2n
@DamiendB pas mal ca! RT: @cattias: : Créer vos jeu concours en ligne en 30mn via Digibonus http://tinyurl.com/ye2fjlm
@sebgregoire RT @LaFermeDuWeb: SEO Panel - Une plateforme web opensource pour suivre votre référencement naturel et le boost: http://bit.ly/6EgqOp
@emalquier [Startup] RT @gbertholet: Entrepreneurs ? Venez boire un pot le 4 février !!! http://bit.ly/4TBBR5 (RT merci merci !)
@davanac New Study Reveals Facebook Better Than Twitter for Marketers | Social Media Examiner http://goo.gl/fb/tRQQ