Configuration serveur apache

Fermé
Profil bloqué - 14 sept. 2010 à 10:52
 Profil bloqué - 15 sept. 2010 à 13:24
Bonjour,
Je dispose d'un serveur dédié quadcore, 2go de ram, et il me sert à héberger un site web qui accueille plusieurs milliers de personnes chaque jours, bien souvent plusieurs centaines de personnes connectées en même temps sur le site.

En principe, un quadcore devrait tout à fait supporter la charge actuelle, mais le serveur ne cesse de planter.

J'ai d'abord pensé à une attaque, car la commande "netstat -an | grep SYN" me renvoie constamment des lignes "SYN_RECV", mais en bannissant ces IPs avec des commandes sur l'iptable je me suis rendu compte que je bannissais des IPs tout à fait valides !! Donc le problème est surement ailleurs.

Ma commande "top" me renvoie un process mysql qui occupe entre 100% et 300%, et plein de petits process httpd, qui parfois, sans raisons, diminuent jusqu'à disparaitre, et là le site lag à mort.. Quand le site est inaccessible, je relance les processus httpd et mysqld, et ca rentre dans l'ordre (jamais pour longtemps). Mes requêtes sql sont optimisées, j'ai un système de cache, et il est arrivé que le site n'ait aucun problème alors que plus de 1000 personnes étaient connectées ! Ce qui m'énerve c'est que parfois ca va, parfois pas.

Voici qque lignes de mon fichier httpd :

ServerRoot "/etc/httpd"

Timeout 30
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15

<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 50
ServerLimit 1024
MaxClients 260
MaxRequestsPerChild 100
</IfModule>

<IfModule worker.c>
StartServers 10
MaxClients 512
MinSpareThreads 10
MaxSpareThreads 50
ThreadsPerChild 30
MaxRequestsPerChild 100
</IfModule>


J'ai déjà essayé différents set de valeurs, sans jamais aucun résultat concret..

Merci d'avance pour vos solutions ! Ce problème est récurrent depuis quelques mois déjà, et ça énerve mes visiteurs et moi même par dessus tout !

Red^^
A voir également:

4 réponses

Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 277
15 sept. 2010 à 10:36
un process mysql qui occupe entre 100% et 300%

t'es sur que t'as optimisé tes requetes ?

Tu devrais te pencher sur l'utilisation d'innoDB si ce n'est pas le cas, et aussi sur les index de bases...

mysqld est très gourmant en RAM, c'est certains, surtout si tu caches correctement, mais qu'il bouffe le temps processeur comme ça c'est pas normal.

Avec un site de cette envergure, je ne saurai que te recommander de séparer physiquement ton serveur de base de données et ton serveur web.
Si c'est un site commercial, pense à faire un front et un back... Un site down, ça coûte cher, investit avant que ça ne te retombe dessus.
0
Profil bloqué
15 sept. 2010 à 11:31
Oui bah je trouve ça normal qu'il tourne énormément.. Si des centaines de requêtes sont faites chaque seconde, c'est compréhensible. J'ai beau mettre en cache, si il y a 1000 personnes en lignes sur le site, forcément j'aurai des tonnes de requêtes à la seconde.

Bref je ne connais pas innoDB. Ce que je ne pige pas c'est que de temps en temps ca va et de temps en temps pas du tout... Alors est-ce juste un hasard?

Si j'ai besoin d'un 2ème serveur je suis pas sorti de l'auberge, déjà que je m'en sors pas avec un. Peut-être que je l'ai mal installé dès le départ, ce n'est pas possible ca? Peut-être qu'en réinstallant apache (ou ginx à la place il parrait que ca marche bien) et php et mysql, tout rentrera dans l'ordre..

Bref je pense que quoi qu'il en soit je vais me payer un 2ème serveur, pour faire des tests sans pour autant devoir fermer le site.
0
Leahkim Messages postés 3079 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 2 mars 2014 277
15 sept. 2010 à 12:16
Attends, attends avant d'acheter.

Il faut cibler le probleme. Je te suggère d'utiliser un système de monitoring digne de ce nom, clair, pour pouvoir determiner ce qui foire.

Pour moi, ton souci de va et viens provient de ta RAM. Je présume que ça tourne sous Debian (enfin j'ose esperer), et de toute façon, les systèmes linux fonctionnent de la maniere suivante:

Linux, de ce que je sais, et que j'ai pu voir utilise en permanence 90% de la RAM, pour mettre en cache les données les plus utilisées, et améliorer le temps de réponse. Seulement, la RAM n'est pas en dispo infinie, et arrive un moment ou elle sature. Arrive alors l'utilisation du SWAP, j'ose espere que tu en as un, c'est une petit partition de disque dur dont se sert le système comme de la RAM. Néanmoins, c'est beaucoup plus lent, vu que c'est tout de meme le disque dur, donc ça aide, mais ça n'est pas une solution à part entière.

Donc, quand la RAM/Swap sont pleins, que fait le linux ? Il vide les données les moins utilisées. Etant donné que tu fonctionnes avec du cache MySQL, les données qui partent principalement sont les caches de requetes SELECT les moins utilisées. Et pour peu que tu utilises des vidéos ou des images de bonnes qualités, c'est la totale, au moment ou le serveur vide une partie de son cache parce qu'il est plein, il doit le reremplir aussitot, et si c'est le rush, on comprendra bien que le processeur soit à genou ...

Si le problème vient bien de la (et ça c'est pas sur, c'est que du pif) la solution la plus rapide que tu as c'est d'augmenter ta RAM, le probleme sera toujours la, mais il apparaitra moins souvent (sauf si tu montes a 64 Go de RAM, la ça arrivera quasiment plus (je déconne xD)).

Bon, pour cibler ton souci, va falloir utiliser, comme je le disais un système de monitoring, je te suggère munin.

C'est geek, c'est simple à mettre en place si ça merde pas, et c'est très efficace.

bon, quel est ton expérience en Linux ? Débutant, confirmé, expert ? Grand maitre ?
0
Profil bloqué
15 sept. 2010 à 13:24
Hmm débutant hein !

D'autant que je ne dispose pas d'interface graphique avec ce serveur, juste le terminal.

Oui le swap est utilisé, parfois trop même !
Quand je lance un top il arrive que je vois le système (sy) qui utilise un gros pourcentage du processeur également, et ça je ne sais pas d'où ca peut venir.

Pour ce qui est de la cache toute façon je peux pas l'augmenter, c'est un serveur tout fait l'hébergeur me donne pas la possibilité de le customizer. Et c'est vrai qu'elle est très souvent utiliser quasi au max.

Donc voilà jv tenter d'installer munin voir ce que ca me dit :p

Merci déjà !
0