OVH Community, votre nouvel espace communautaire.

Serveur surchargé : que faire ?


jelie
19/04/2004, 19h11
Ben ce qui vous embêtait était le problème de mémoire ; je pense que cette méthode d'appel d'Apache requerra moins de mémoire.

Il est vrai que ce sera un peu plus lent ; mais je ne sais pas dans quelle proportion exacte. Il faudrait effectivement tester.

aheskia
19/04/2004, 16h02
Oui mais à côté de ça l'exécution du code PHP est plus rapide... Donc je ne suis pas certain que l'on soit gagnant de charger mod_php en dynamique (plustot qu'en statique)...

Mais je testerais cette solution si mon serveur se retrouve à nouveau sous l'eau...

jelie
19/04/2004, 15h54
Oui je sais bien ; mais je me demandais si le chargement à part du module PHP (à la demande d'Apache) n'engendrerait pas un gain de mémoire.

Car il me semble que pour une requête d'image gif par exemple, tout un fils Apache de 6/7 Mo se charge...

aheskia
19/04/2004, 15h34
Mais j'ai besoinde PHP ! Tout notre site est en PHP !!!

jelie
19/04/2004, 15h25
Et est-ce que le problème ne pourrait pas venir d'Apache, qui est compilé d'office avec mod_php ?

Les fils Apache prennent alors quelque 6 Mo chacun, même pour une requête qui ne demande pas l'utilisation de PHP.

aheskia
19/04/2004, 11h01
En effet 500 000 utilisateurs et plus de 6 000 000 de posts ! Ca turbine !!!

De notre côté depuis les modifs de conf HTTP, ca va nettement mieux... La mémoire utilisée oscille entre 50 et 70% et ne dépasse pas les 80 %... Le load average monte parfois à 3 ou 4 mais c'est assez rare (on a eu une pointe à 7)... Globalement tout va bien !
J'attend encore qques semaines avant de me réjouir de tout ça (c'est encore les vacances pour certains) et on verra !

Tech_
15/04/2004, 01h14
salut ^^

juste une parenthèse, vous avez déjà vu ce forum ? (basé sur phpBB)
-> http://moira.go-gaia.com/forum/

je ne sais pas quelle structure ils ont là derrière, mais ça doit être du costaud, surtout pour du phpBB

aheskia
07/04/2004, 08h43
En fait en regardant le forum IPB France (http://www.ibf-french.com) il y a pas mal d'infos pour aider à la conversion... vinch propose à mis a dispo des scripts qui completent le script de migration quand à la migration des attachments, c'est apparemment faisable (il y a qques thread sur ce sujet) sans trop de douleurs !

Je vais donc me faire un petit espace de test et je vais voir...

dreamer12345
06/04/2004, 23h17
On peut joindre des fichiers sous IPB (pour peu que tu utilises les utilisateurs à le faire) mais malheureusement en regardant en vitesse dans les sources du convertisseur IPB -> phpBB2, j'ai trouvé ceci:

Code:
else if ($tbl == 'posts')
{
	return "Converting Posts

If you are running the phpBB2 attachment modification, the attachments will not be converted."; }
Alors soit tu perds tes fichiers joints, soit tu t'amuses à modifier le code de la conversion (ce qui à mon avis ne doit pas être extrêmement difficile)...

aheskia
06/04/2004, 18h47
Et bien c'est assez impressionnant ! Mais je comprend que ce soit efficace !!!!

Sinon
aheskia écrivait :
Une autre question à Dreamer12345 à propos de IPB : sous phpBB nous avons AttachMod qui permet d'avoir des fichiers joints à un post... est-ce que cela existe sous IPB et si oui, la migration "automatique" de phpBB vers IPB va-t-elle bien prendre en compte ces fichiers joints...

MarcP
06/04/2004, 18h39
aheskia écrivait :
En effet, c'est vraiment la paramètrage "de base"...

MarcP : pas mal ton système mais c'est pas trop lourd la synchro entre la BDD de recherche de ton PC @ home avec le SD ?
non pas du tout, c'est un logiciel interne qui fait ca, + quelques script perl/C. Ca rame un peu quand un client a fait du cache (genre 15 jours de données = 500Mo à injecter puis repliquer) mais sinon ca tourne super, la plupart du temps c'est du push (une requete par client toutes les 0.5sec) et en cas de panne le client buffeurise puis envoie tout d'un coup (il attends de finir sa requete avant d'en lancer une autre pour pas tuer le serveur)
Si ta BDD est bien indexée ca roule super

aheskia
06/04/2004, 18h34
Une autre question à Dreamer12345 à propos de IPB : sous phpBB nous avons AttachMod qui permet d'avoir des fichiers joints à un post... est-ce que cela existe sous IPB et si oui, la migration "automatique" de phpBB vers IPB va-t-elle bien prendre en compte ces fichiers joints...

aheskia
06/04/2004, 14h36
En effet, c'est vraiment la paramètrage "de base"...

MarcP : pas mal ton système mais c'est pas trop lourd la synchro entre la BDD de recherche de ton PC @ home avec le SD ?

dreamer12345
06/04/2004, 13h53
aheskia écrivait :
Merci dreamer, c'est vraiment très sympa et j'apprécie énormément le temps que tu as passé (idem pour les autres)...

Je vais donc très fortement envisager le passage sur Invision qui me parait être une bonne solution...
De rien

Voici ma config MySQL:
Code:
connect_timeout = 20
max_connections=100
long_query_time=4
Apache:
Code:
Timeout 300
MaxKeepAliveRequests 100
KeepAliveTimeOut 15
MaxClients 150
MaxRequestPerChild 60
MinSpareServers 10
MaxSpareServers 20
StartServers 15

MarcP
06/04/2004, 13h52
Net2 = netissimo2 (fourni par nerim et wanadoo), en gros de l'adsl 1024/256.
Engros : Le serveur dédié recoit les entrée dans les bases, un script les dupliques sur les autres serveurs internes.

La tu fais ca :
un serveur sql chez toi
tu fais un script qui compares les entrées dans la base recherche et dans la base chez toi, et qui mets à jour comme il se faut les bases. (tu peux aussi le faire directement dans phpbb mais c'est + compliqué et + génant quand ton pc @ home ne reponds plus)
Pour la fonction recherche, tu lui dis juste de se connecter à la base chez toi et non à la base du dédié et roulez jeunesse.
Autre solution : une replication de la base MySQL vers chez toi (avec mysql 4 c'est possible), et pareil pour le reste : recherche sur la base chez toi.
Avantage : tu peux monter en charge tranquille.
Pour tester, desactive la focntion recherche 24h, et regarde ton load average. C'est souvent cette fonction qui fait 95% de l'utilisation (elle fait des accès disques intesifs)

dreamer12345
06/04/2004, 13h45
MarcP écrivait :
Il y'a plusieurs connections chez plusieurs prestataires, et ca n'a jamais été down en 1an 1/2 (p-e que le net2 est plus stable aussi)
Il y'a aussi le fait que vu la consommation de données (34Mo de + dans la base / jour / client), tu imagines les machines qu'il faudrait héberger pour stocker ca (plusieurs baies).
La on a redondance completes des bases et des disques, au pire on passe en RTC automatiquement si les ADSL se coupent.
Les volumes de données remontées sont faibles (50 Mo/jour), par contre si tu demandes à un dédié de faire 4 average en meme temps sur 2 millions de champs, il te faut de la puissance
Ahhhh j'ai du mal comprendre, quand tu parlais de prestataire tu voulais dire fournisseur d'accès à internet (j'avais compris hébergeur de serveur dédiés ), mais comment ca se passe alors? Tu as un dédié pour le site web et les opérations nécessitant la base de données se font sur un réseau de machines connectées sur des lignes ADSL (c'est quoi au fait Net2, un fournisseur ADSL?), c'est ca? Et les données de la base sont stockées sur un serveur de fichier alors?

aheskia
06/04/2004, 13h09
Merci dreamer, c'est vraiment très sympa et j'apprécie énormément le temps que tu as passé (idem pour les autres)...

Je vais donc très fortement envisager le passage sur Invision qui me parait être une bonne solution...

MarcP
06/04/2004, 13h09
Sinon tu peux toujours faire comme le dit MarcP, réquisitionner une connexion ADSL et un PC et lui faire prendre toute la charge des requêtes, perso je trouve ca un peu système D dans la mesure où la connexion ADSL n'est pas garantie (je suppose que lui aussi, c'est sûrement pour celà qu'il utilise des gros serveurs dédiés pour ca )
Il y'a plusieurs connections chez plusieurs prestataires, et ca n'a jamais été down en 1an 1/2 (p-e que le net2 est plus stable aussi)
Il y'a aussi le fait que vu la consommation de données (34Mo de + dans la base / jour / client), tu imagines les machines qu'il faudrait héberger pour stocker ca (plusieurs baies).
La on a redondance completes des bases et des disques, au pire on passe en RTC automatiquement si les ADSL se coupent.
Les volumes de données remontées sont faibles (50 Mo/jour), par contre si tu demandes à un dédié de faire 4 average en meme temps sur 2 millions de champs, il te faut de la puissance

dreamer12345
06/04/2004, 13h07
Moi j'ai les configs d'origine, n'ai rien touché, je te les donnerais tout à l'heure je n'ai plus trop le temps maintenant...

aheskia
06/04/2004, 13h00
Merci dreamer pour tes infos... c'est en effet très prometteur !

si tu es sur SP+ peuxt-u me donner ta config Apache (si elle est différente de ce que j'ai configuré) :
Je fais donc un premier essai avec les valeurs suivantes :
MaxKeepAliveRequest 10
MaxRequestPerChild 10
MaxClient 50 (OVH conseille 30 et Fraser 120 donc je coupe la poire en deux ou presque )
KeepAliveTimeOut 10
Je vais voir cette semaine ce que cela va donner car vendredi ca a été une horreur totale !
et quelle est ta config MySQL ?

dreamer12345
06/04/2004, 12h53
1 - Est-il aisément skinable (comme l'est phpBB par exemple)
Ca je ne sais pas, je ne supporte pas l'infographie, ce n'est pas moi qui m'en occupe

2 - est-ce qu'en version "Trial", les outils de migration de la base MySQL d'un forum sous phpBB vers IPB sont fournis ?
Tout à fait vi!

3 - Y a-til des outils fourni pour reconstruire l'index de recherche ?
Lorsque tu vas installer IPB, il va créer les tables MySQL dont il aura besoin et il y créera également les index!
Quand tu lanceras la conversion phpBB -> IPB, le "convertisseur" va prendre chaque enregistrement de phpBB et l'insérer dans MySQL au moyen d'une requête SQL, celle-ci maintiendra bien sûr l'index créé par IPB!
Il ne faut pas t'en faire pour celà ;-)
Une conversion, c'est un peu comme si tous les membres venaient reposter leur message sur le nouveau forum sauf que c'est automatique et beaucoup plus rapide

D'autre part notre forum contient 3500 utilisateurs dont 2000 sont "actifs". Il y a en moyenne 200 à 400 posts par jour et 1500 visites par jour
Est-ce que IBP est suffisant... J'ai aussi regardé vBulletin qui est aussi pas mal utilisé sur les 'gros' sites qu'en pensez-vous ?
Je viens de regarder les stats de "mon forum" (c'est pas vraiment mon forum, c'est le forum que j'administre ), on a eu entre le 7 janvier 2004 et le 6 avril 2004 50936 messages, en comptant qu'il y a 90 jours, ca nous fait une moyenne de 566 messages par jour (dans les stats journalières ca varie de 200 à 900 messages / jour)

En mars j'ai eu 571003 visites sur le forum (d'après Webalizer) ce qui nous donne 19033 visites / jour maintenant ca ce sont les hits, je ne me sert jamais de Webalizer je ne sais pas si ce sont des visiteurs unique ou des gens qui cliquent 25 fois par jour sur le lien "forum" mais de toute façon le forum assure plus de 19000 affichage / jour!

On est aussi sur un SuperPlan+, je consomme la moité de ma RAM (128Mo sur 256), je suis à un load average de 0.18 en ce moment et le forum m'indique qu'il y a eu 42 utilisateurs actifs dans les dernières 15 minutes.

Sinon tu peux toujours faire comme le dit MarcP, réquisitionner une connexion ADSL et un PC et lui faire prendre toute la charge des requêtes, perso je trouve ca un peu système D dans la mesure où la connexion ADSL n'est pas garantie (je suppose que lui aussi, c'est sûrement pour celà qu'il utilise des gros serveurs dédiés pour ca )

Essaye toujours IPB ou vBulletin (je n'ai pas de comparaison de ces deux forums, je ne sais pas lequel est vraiment le meilleur, faudrait faire un tit coup de Google pour celà) et si ca ne fonctionne pas, faudra à mon avis faire ce que MarcP te conseille...

aheskia
06/04/2004, 12h44
Coder en PHP je sais "un peu" faire, mais de là a tout reprendre le module de recherche de phpBB pour utiliser un système distribué avec des bases diverses... Faut les alimenter et c'est pas évident !!!

Je préfère m'en tenir a ce qui est fourni "en standard" ou en "module" avec le soft...

En tout cas merci pour toutes vos infos c'est très intéressant...

Sinon des réponses par rapport à mon précédent post ?

D'autre part, on m'a donné des paramètres pour Apache... Y'a-t-il des choses à paramètrer au niveau de MySQL (dans /etc/my.cnf, cf mon premier post) pour optimiser son fonctionnement ?

MarcP
06/04/2004, 11h55
solution simple :
(Si tu sais coder en php un minimum)
Tu rapatries la fonction de recherche chez toi, sur un poste : une ligne adsl doit amplement suffire à transferer les données nécessaires. Et la tu resoud 95% de tes problemes de puissance.
Pour mon cas (gestion de bases de données énormes)
les données des dernières 24h sont stoquées sur différents dédiés chez plusieurs prestataires. Lors d'une requete basique, on fait ca direct sur ces machines.
Lors d'une requete bien lourde, on la fait sur des serveurs internes (bi-cpu costauds) avant de renvoyer le resultat.
Bilan : un coût bien moindre, une efficacité + grande (on peut upgrader facilement le matos), pour une fiabilité impec (une sorte de dyndns interne, avec plusieurs lignes net2)

aheskia
06/04/2004, 11h32
Tout cela est très intéressant...

Bon pour le moment avec les modifs sur Apache, j'ai réduis un peu la consommattionde RAM et pour le moment pas de dégats à déplorer (une petite pointe à 7 pour le loadaverage hier, c'est tout)

Pour le forum, il va donc falloir que je regarde IPB de près mais avant de me lancer j'aimerais avoir plus d'infos :
1 - Est-il aisément skinable (comme l'est phpBB par exemple)
2 - est-ce qu'en version "Trial", les outils de migration de la base MySQL d'un forum sous phpBB vers IPB sont fournis ?
3 - Y a-til des outils fourni pour reconstruire l'index de recherche ?
D'autre part notre forum contient 3500 utilisateurs dont 2000 sont "actifs". Il y a en moyenne 200 à 400 posts par jour et 1500 visites par jour
Est-ce que IBP est suffisant... J'ai aussi regardé vBulletin qui est aussi pas mal utilisé sur les 'gros' sites qu'en pensez-vous ?

dreamer12345
05/04/2004, 12h11
La proposition de dreamer12345 de passer sur IBP est intéressante, j'avais aussi pensé à vBulletin... Mais il y a 2 soucis :
1 - Ces solutions sont payantes, or nous sommes une association et la quesi totalité de nos revenus passe dans l'hébergement (surtout depuis que nous avons un SP+)...
2 - Nous avons réalisé qques petites modif sur phpBB et je ne suis pas certain qu'une migration sera aisée
De toute façon je suis conscient que phpBB n'est peut-être pas le meilleur forum mais dans le domaine OpenSource je pense qu'il est largement en tête, non ?
Pour le premier point, IPB existe aussi en version gratuite, il s'agit de la "Trial version", en fait ce qui diffère avec la version payante c'est que tu n'as aucune assistance technique (en gros tu dois installer le forum tout seul et ils ne t'aident pas si tu ne trouve pas la fonction "Banir un membre" tout seul ), tu ne peux te connecter qu'à une base de données MySQL (ca tombe bien c justement ce dont tu disposes) et tu as certaines fonctions "avancées" qui sont indisponible.
En fait, IPB en version gratuite est un forum très complet, très optimisé et la version payante comprend des modules "en extra" pour essayer d'attirer des clients... si tu vas sur le forum du site dont je m'occupe (adresse en signature), on est sur IPB 1.3 version gratuite depuis 6-7 mois et il fonctionne à merveille!
Pour trouver la version gratuite d'IPB, tu vas sur http://www.invisionboard.com -> Download and pricing -> Free trial version information et tu prends la version 1.3 (ainsi que ses mises-à-jour de sécurité)

Pour le point 2... va falloir bosser pour réduire la charge sur ton serveur
Et comme le disait MarcP, ce n'est pas parce que phpBB est en tête qu'il est le meilleur, il est malheureusement réputé pour sa lourdeur...

Momo
05/04/2004, 11h04
Comme solution de cache tu as aussi Truck MMcache qui est pas mal.

MarcP
05/04/2004, 09h15
Je te confirmes que ces différentes suites 'phpaccelerator' sont surtout adaptées à des boutiques e-commerces mal optimisées ou autre.
Pour PHPBB, commence par brider la fonction recherche, désactive la temporairement tu verras ton forum sera très soulagé.
Ensuite si phpbb est le plus répandu, c'est aussi très très lourd !!!
[troll]
Windows est le plus répandu, et pourtant...
[/troll]

aheskia
05/04/2004, 09h05
Avant tout merci à tous pour vos nombreux conseils...

Suite à vos discussions je tiens à préciser que c'est bien la RAM et non la CPU qui font que mon load average par en vrille (je rappelle que nous avons 256 MO de RAM sur un SP+ ce qui peut être parfoius un peu étroit, par contre avec les 2,4GHz de CPU je pense que c'est confortable)... Donc en ce qui concerne les valeurs de MaxReqyestPerChild et MaxClient, il faut que je les mette pas trop haute...
Je fais donc un premier essai avec les valeurs suivantes :
MaxKeepAliveRequest 10
MaxRequestPerChild 10
MaxClient 50 (OVH conseille 30 et Fraser 120 donc je coupe la poire en deux ou presque )
KeepAliveTimeOut 10
Je vais voir cette semaine ce que cela va donner car vendredi ca a été une horreur totale !

La proposition de dreamer12345 de passer sur IBP est intéressante, j'avais aussi pensé à vBulletin... Mais il y a 2 soucis :
1 - Ces solutions sont payantes, or nous sommes une association et la quesi totalité de nos revenus passe dans l'hébergement (surtout depuis que nous avons un SP+)...
2 - Nous avons réalisé qques petites modif sur phpBB et je ne suis pas certain qu'une migration sera aisée
De toute façon je suis conscient que phpBB n'est peut-être pas le meilleur forum mais dans le domaine OpenSource je pense qu'il est largement en tête, non ?

Sylvestre propose phpAccelerator et MarcP parle de Zend, c'est peut-être une piste à explorer mais si cela ralenti notre forum, cela me gène un peu !!!

Enfin passer à MySQL4 m'effraie un peu... est-ce qu'OVH prévoit un upgrade via une release ?

Par contre avez-vous des idées pour optimiser MySQL en modifiant des paramètres dans /etc/my.cnf ?

dreamer12345
03/04/2004, 14h28
A ta place la première chose que je ferais, c'est surtout de passer sur un forum beaucoup plus optimisé comme par exemple Invision Power Board!
Les conversions entre phpBB et IPB ne sont pas très compliquées en plus... quelques clics et c'est fait

i-services
03/04/2004, 10h40
si je met 150 (pour suivre l'avis d'OVH) en me basant sur les 102 connexions reportées par netstat mon serveur bloque car les connexions se mettent en file d'attente en attendant qu'une connexion se libère

i-services
03/04/2004, 10h39
pourtant moi avec ceci j'ai un serveur qui ne surcharge jamais (je parle du serveur web, pas du serveur avec mysql qui lui surcharge parfois sans que je sache pourquoi) :

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 10
MaxClients 1024
MaxRequestsPerChild 1000
MinSpareServers 100
MaxSpareServers 200
StartServers 150

et pour la commande netstat :

[root@ns1 root]# netstat -tanp | grep ESTA | grep httpd | wc -l
102

et mrtg :

http://ns1.i-services.net/mrtg/mrtg-sys/

OVH
03/04/2004, 10h34
> si tu obtiens par exemple 80 alors met ton maxclient sur 100. Si tu obtiens 110 met le sur 150, ... moi j'ai mon maxclient sur 1024

Ce n'est pas la bonne methode. Si vous donnez à apache 100, il prendra 100. Si vous lui donnez 200, il prendra 200. Si vous lui donnez 30, il devra faire avec
et va faire de sort de se tenir à cette limite.

Mettre plus que 150 sur un apache ça n'a pas de sens parceque la machine
ne pourra jamais supporter autant des requetes simu (pas assez de CPU
pour traiter 150 executions de script simultanées). C'est un cas extreme
qui provoque plantage des machines un jour par an, le jour où il ne faut
pas.

Pour savoir combien sont réellement utilisés:
netstat -tanp | grep ESTA | grep httpd | wc -l

> diminue aussi le keepalivetimeout à 10

ça peut aider.

> et augmente le maxrequestperchild à 1000, ça permet de bouffer moins de cpu mais il te faut suffisament de RAM

justement non. c'est un moyen d'utiliser trop de RAM sans aucun avantage
dans l'hébergement des sites. Il faut mettre 30 voir 5 si vous utilisez les
scripts php qui prennent beaucoup de RAM. ça permet liberer la RAM.

MarcP
03/04/2004, 10h32
i-services écrivait :
avant cela regarde combien tu a de connexions apache

ps aux | grep apac | wc -l

si tu obtiens par exemple 80 alors met ton maxclient sur 100. Si tu obtiens 110 met le sur 150, ... moi j'ai mon maxclient sur 1024

diminue aussi le keepalivetimeout à 10 et augmente le maxrequestperchild à 1000, ça permet de bouffer moins de cpu mais il te faut suffisament de RAM
Un max client à 1024 sur un superplan...

MarcP
03/04/2004, 10h31
sylvestre écrivait :
Tu devrais aussi regarder du coté de :
http://phpaccelerator.co.uk/

Ca accelere pas mal la generation des pages php (il ne va pas tout se retaper a chaque fois), solution potentiellement interessante
pour ma part j'utilise la suite de Zend (zend accelerator et cie). Autant c'est adapté à certains sites, autant pour un forum ca apporte un léger...ralentissement !
ca pose aussi certains problème (à priori des "bugs" de phpbb qui ne ressortent qu'une fois la suite installée)

i-services
03/04/2004, 09h29
Diminuez MaxClients à 30
avant cela regarde combien tu a de connexions apache

ps aux | grep apac | wc -l

si tu obtiens par exemple 80 alors met ton maxclient sur 100. Si tu obtiens 110 met le sur 150, ... moi j'ai mon maxclient sur 1024

diminue aussi le keepalivetimeout à 10 et augmente le maxrequestperchild à 1000, ça permet de bouffer moins de cpu mais il te faut suffisament de RAM

OVH
03/04/2004, 00h23
Diminuez MaxClients à 30. Votre problème sera resolu. Vous aurez un accès nettement plus rapide. Si vous laissez 150, vous allez permettre à apache de créer les slots même s'il n'a pas besoins.

sylvestre
03/04/2004, 00h21
Tu devrais aussi regarder du coté de :
http://phpaccelerator.co.uk/

Ca accelere pas mal la generation des pages php (il ne va pas tout se retaper a chaque fois), solution potentiellement interessante

Fraser
02/04/2004, 22h15
descendre la maxkeepaliverequest à 10
descendre la maxrequestperchild à 10
descendre le maxclients à 120 ou moins

MarcP
02/04/2004, 22h15
si tu as un gros forum le problème vient probablement de la fonction "recherche", desactive la temporairement et voit si c'est mieux
Si ca soulage, modifie la fonction recherche pour la limiter un peu

nerick04
02/04/2004, 16h32
perso, je ne suis pas passé sous mysql 4 mais le passage n'est pas très compliqué a faire il y a un how-to ici: http://forum.ovh.com/showthread.php?s=&threadid=531
Sinon pour plus d'info sur le cache, va voir par là: http://www.mysql.com/doc/fr/Nutshell_4.0_features.html et ici: http://www.mysql.com/doc/fr/Query_Cache.html

Sinon peut être que ton site n'est pas bien optimisé?

i-services
02/04/2004, 14h36
je te conseille de prendre un forum ici

http://www.i-services.net/membres/forum/

tu va ainsi réduire considérablement la charge de ton serveur. Je suis persuadé que c'est phpBB qui bouffe toutes ces ressources et le mieux est un forum indépendant

voici un exemple de forum installé :

http://www.i-services.net/membres/fo...ire.php?user=1

a part ça si tu veux des conseils pour optimiser tes scripts ou la structure de ta base mysql n'hésite pas à me contacter, pour autant que tu ne me demande pas comment optimiser phpBB

aheskia
02/04/2004, 14h14
nerick04 écrivait :
mysql 4 posséde un systéme de cache donc ca pourra peut-être résoudre en partie ton problême
Donc tu penses qu'un upgarde vers MySQL4 serait bénéfique ? Est-ce compliquer de migrer de mYSQL3 vers 4 ?

Et en ce qui concerne le paramètrage de mon serveur qu'en penses-tu ?
(en ce moment le load-average de mon serveur est à 32 !!!! )

nerick04
02/04/2004, 14h11
mysql 4 posséde un systéme de cache donc ca pourra peut-être résoudre en partie ton problême

aheskia
02/04/2004, 13h50
Bonjour à tous,

Nous avions un superplan chez OVH pendant un an dont nous étions très content et vu le succès rencontré par notre site hébergé sur ce serveur nous avons été obligé d'envisager un upgarde vers superplan+ pour disposer de plus de mémoire (notre serveur était régulièremenbt surchargé avec plus assez de RAM et ca swappait)...

Nous voilà depuis un mois sur ce fameux SP+ dans nos 256MO de RAM, mais rebelotte, ça recommence...
PLus de RAM --> SWAP --> load average dépassant 20 !
Pour limiter les dégats j'ai commencé par rajouté mod_load sur Apache afin de renvoyer une erreur 403 si la charge du serveur dépasse un certain seuil (fixé à 15 pour le moment)

Maintenant les utilisateurs se plaignent de se prendre régulièrement des erreurs 403 ! ils doivent donc attendre qques minutes que la charge redescende pour à nouveau avoir accès au site...
J'ai contacté le support OVH qui après analyse de mon pb me suggère un upgarde à 512MO de RAM car apparemment ce n'est pas du à un hack ou à un script qui plombe le serveur (on a tout de même un forum sous phpBB 2.0.6 avec pas mal d'utilisateurs et de posts par jour)...
Malheureusement notre budget n'est pas infini (nous sommes une association) et nos finances sont un peu justes pour envisager un tel upgarde qui va nous coûter 30¤ HT/mois en plus ! En attendant je me demande donc quelles optimisations je pourrait faire au niveau de la conf MySQL (paramètres passés /etc/my.cnf) ou dans le httpd.conf pour Apache pour optimiser un peu mieux les connexions et permettre au serveur de mieux encaisser la surcharge ?
NB : ce qui est étrange c'est que c'est en général à 17h que l'on a ce phénomène et que ce n'est pas forcément à un moment où nous avons un pic de charge en terme de bande passante/slot Apache (d'après MRTG-sys) un un nombre de connexion plus importants (d'après WebAlizer)...

Voici donc un extrait du contenu de /etc/my.cnf :
Code:
[mysqld]
set-variable = connect_timeout=20
set-variable = max_connections=100
skip-networking
set-variable = long_query_time=4
log-slow-queries = /var/log/mysql/slow-query.log
bind-address=127.0.0.1

[safe_mysqld]
err-log         = /var/log/mysql/info.log
et voici un extrait de mes paramètres /usr/local/apache/conf/httpd.conf :
Code:
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15

#
# Server-pool size regulation.  Rather than making you guess how many
# server processes you need, Apache dynamically adapts to the load it
# sees --- that is, it tries to maintain enough server processes to
# handle the current load, plus a few spare servers to handle transient
# load spikes (e.g., multiple simultaneous requests from a single
# Netscape browser).
#
# It does this by periodically checking how many servers are waiting
# for a request.  If there are fewer than MinSpareServers, it creates
# a new spare.  If there are more than MaxSpareServers, some of the
# spares die off.  The default values are probably OK for most sites.
#
MinSpareServers 10
MaxSpareServers 20

#
# Number of servers to start initially --- should be a reasonable ballpark
# figure.
#
StartServers 15

#
# Limit on total number of servers running, i.e., limit on the number
# of clients who can simultaneously connect --- if this limit is ever
# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
# It is intended mainly as a brake to keep a runaway server from taking
# the system with it as it spirals down...
#
MaxClients 150

#
# MaxRequestsPerChild: the number of requests each child process is
# allowed to process before the child dies.  The child will exit so
# as to avoid problems after prolonged use when Apache (and maybe the
# libraries it uses) leak memory or other resources.  On most systems, this
# isn't really needed, but a few (such as Solaris) do have notable leaks
# in the libraries. For these platforms, set to something like 10000
# or so; a setting of 0 means unlimited.
#
# NOTE: This value does not include keepalive requests after the initial
#       request per connection. For example, if a child process handles
#       an initial request and 10 subsequent "keptalive" requests, it
#       would only count as 1 request towards this limit.
#
MaxRequestsPerChild 60
D'autre part, je vois qu'OVH (au niveau mutu) est en train de passer à MYSQL4, est-ce qu'éventuellement MySQL4 est mieux optimisé en gestion mémoire (par rapport à la v3.23 livré en standard avec les SP+) et donc pourrait solutionné mon pb ?

Merci pour votre aide.