Charge de mon serveur dedie et optimisations

Nouveau WRInaute
Bonjour a tous,

Je suis responsable d'un site qui fait plus de 10.000VU par jour pour environ 100.000 Pages vues.

La frequentation du site va probablement tripler avant l'ete et je souhaite me premunir contre toutes les "explosions" possibles!

Aujourd'hui, le site est heberge par @ serveurs :
- Serveur principal : apache, PHP, mails... etc.
- Second serveur : MySQL.

Les deux serveurs ont la conf suivante :
- Serveur principal : P4 3Ghz, 1Go de RAM
- Second serveur : P4 3Ghz, 1Go de RAM
Ils sont heberges dans le meme DataCenter.

J'ai les MRTG du serveur principal, pas encore du second, je les posterai un peu plus tard, mais globallement il est bien moins charge.

MRTG serveur principal :http://sd970.sivit.org/mrtg/mrtg-sys/

Notez que nous envoyons de tres nombreux mails pendant la nuit aux abonnes de notre site.

J'aurais aime avoir votre avis concernant ce MRTG, et savoir en particuleir si nous sommes "a l'abri". Le temps de reponse du site (selon les graphs de google Webmaster tools est en augmentation, avec une moyenne a 450ms environ)

Pour optimiser Apache, j'ai vu dans certains articles, qu'il pourvait etre interessant de creer des serveurs statiques pour gerer les CSS, les images et les JS. si certains d'entre vous utilisent cette technique, peuvent-ils la detailler?

Merci pour votre aide,
 
WRInaute passionné
Ton serveur n'a pas l'air tres charge. A quoi correspond la periode 22-12 ? A l'envoi des courriers? Si c'est le cas, je deplacerais la messagerie du premier vers le deuxieme serveur. Autre possibilite: migrer vers un unique nouveau serveur, meme prix mais plus performant. Dans tous les cas, un triplement devrait passer sans probleme.
 
Nouveau WRInaute
Merci pour ton aide Serious.

La periode 22h-12h correspond a celle ou j'envoie les mails...

Je vais effectivement reflechir a sortir la gestion des mails de mon serveur principal.

Quelqu'un sait faire cela? Comment on fait pour les problematiques de nom de domaine de provenance de l'email.. etc?

Pour ce qui est de splitter le serveur Apache (sur la meme machine) en un serveur statique et un serveur non statique : est-ce utile? comment faire?

Je tiens vraiment garder un site web efficace et rapide en toute circonstance, meme dans les pics a plus de 50000 VU par jour.
 
WRInaute occasionnel
Salut,

Je suis sur la meme config que toi, j'ai 2 serveurs, un apache & mail, l'autre mysql. C'est deja beaucoup plus performant que d'avoir une seule becane.

Tout depends tes sites (tres dynamique ou peu) mais je pense que c'est ton second serveur qui est le plus à regarder. Apache seul sur un P4 3Ghz, il est assé trankil! Et d'ailleurs ca se voit.
Le cpu n'est pas trop solicité. La charge qui est a mon avis le seul parametre important, je ne sais pas comment il est calculé sur ton graph. Pareil pour les connexion TCP qui me semblent importante mais ca doit dependre de quel parametre tu prend reelement en compte. (Un 'TOP' est plus parlant pour moi).

Bon, de toute facon, si un serveur commance à etre trop chargé tu pourra deplacer des programme sur l'autre.
(Pour tes mails tu peux les renvoyer sur ton second pc au niveau de ton serveur dns par ex.)
 
WRInaute passionné
julien51 a dit:
De toute explosion de serveur due a une surcharge...

après examen, ce serveur n'a pas l'air trop en surcharge.. juste bien occupé, mais il a de la ressource disponnible sous le pied encore.
 
Nouveau WRInaute
Merci a tous pour votre aide...

Apres consultation du MRTG SYS pour mon second serveur, il semble bien que cela soit effectivement MySQL qui soit a la peine...

http://sd1792.sivit.org/mrtg/

Il va donc falloir que je me mette a l'oeuvre pour l'optimiser... Pouvez-vous me donner des conseils? De quelles infos auriez-vous besoin pour mieux apprehender cela?

Dans un second temps, je vais effectivement penser a extraire le serveur de mail de mon serveur principal et le passer sur un troisieme serveur... Pourriez-vous m'aider?
 
WRInaute occasionnel
julien51,

un troisieme serveur... sache qu'un serveur de mail avec antivirus et tout, ne consomme vraiment pas beaucoup; bien sur tout depend du nombre de mails à traiter.

10000VU c'est vraiment peu par rapport aux 2 serveurs. Moi, je commancerai à verifier le code de tes sites, au niveau des requetes bien sur (utilisation des index, eviter les SELECT *, ...).
Verifie que tu utilises du cache sur mysql. Lance mysql en mode LOG et regarde s'il n'y a pas des requetes non voulus(boucle...); Sur phpmyadmin, tu peux voir le nombre de requetes/secondes. Ca peut aussi te donner une idée.

Enfin, Il y a eu de tres bon tudos sur l'optimisation d'apache dans ce forum, je te laisse les retrouver.
 
Nouveau WRInaute
Chava2b> en fait, il s'agit pour l'instant de 80000 mails par jour environ, mais ce nombre va lui aussi exploser et passer a priori a 2000000 au mois de Juin, donc, il faudra que j'envoie des mails en permamence et plus seulement la nuit comme c'est le cas a l'heure actuelle... Voila pourauoi j'envisage serieusement cette solution.

Je deja fait pas mal d'optimisation sur les requetes : pas de *, jointures sur les index... etc, mais je dois effectuer beaucoup de tri (moteur de recherche) et cela assome mon MySQL, mais je vais regarder un peu plus de ce cote la.

Pour les 10.000 VU, c'est vrai que cela passe, mais vue la croissance actuelle, mieux vaut prevenir que guerir et je pense que cela lachera avant les 30.000...

C'est quoi le mode LOG de MySQL?

Pour les requetes, voila ce aue j'ai pu trouver :
ø per hour ø per minute ø per second
373.31 k 6.22 k 103.70

Merci pour ton aide!
 
WRInaute passionné
julien51 a dit:
Pour les requetes, voila ce aue j'ai pu trouver :
ø per hour ø per minute ø per second
373.31 k 6.22 k 103.70

le nombre de requètes importe peu, à 104/s ce n'est pas des masses, ce qui m'étonne, chez moi j'en suis à 200/secondes, le serveur tourne à 20% CPU; ainsi que cela a été suggéré plus haut, il s'agit sans doute de requètes mal formulées.

mais j'ai du mal à comprendre en effet, 10K VU/j c'est honorable, certes, mais pas extraordinaire, on a déjà vu pire, ou plus. en tout cas, 10KVU/J il n'y a en théorie pas de quoi mettre un couple apache mysql à genoux.

voir au niveau des mails; c'est là que je comprends encore moins, tu dis avoir 10KVU, et envoyer 80Kmails/j soit 8 mails /vu/j hem hem c'est pas un peu strange ? non ?

tu ne veux pas nous envoyer une url par hasard, qu'on puisse se rendre compte (au besoin en MP)
 
Nouveau WRInaute
Non, ce n'est pas "strange", c'est un site d'emploi et nous envoyons les nouvelles annonces aux candidats qui en font la demande!

Je deja fait pas mal de bench sur mes requetes et celles aui sont lourdes sont clairement celles qui ont des "ORDER BY", mais, comme je le disais, c'est dur de faire sans dans un moteur de recherche!

D'autant que le critere de tri est en permanence evolution... Ce n'est pas une donnee figee!
 
WRInaute occasionnel
Julien,

Les logs de mysql; y en a 2; le premier te donne les requetes longues (par defaut >10s); le second log toutes les requetes; Ca me permet de mieux voir ce qu'il se passe;

Il faut arreter ton serveur et le relancer; Je le lance manuellement, juste pour faire mes tests (5mn par ex):
Code:
./mysqld_safe --log --log-slow-queries

100 req/s ca peut etre beaucoup si tes requetes sont lourdes (jointure et tri consonnent s'il y a beaucoup d'enregistrements).
Regarde ta config de mysql (fichier my.cnf) et essaye d'optimiser à ce niveau. (sort_buffer_size,query_cache_size,...). Moi j'ai fais par tatonnement pour trouver le meilleur compromis
 
Discussions similaires
Haut