Bonjour,
Je suis entrain de me battre avec la configuration de mon serveur, et je n'arrive à rien. Voici des infos sur le serveur :
Hardware : Processor E5620 2400 Mhz 2 CPU 4 Cores, 8 GB RAM
OS : Linux version 2.6.32-5-amd64 (Debian 2.6.32-38) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Oct 3 03:59:20 UTC 2011
La machine n'héberge qu'un seul site internet mais qui a un gros traffic (1 million de pages vues par jour, 4000 visiteurs simultanés aux heures de pointes), pas de streaming, pas de fichiers hébergés sur le serveur à télécharger, juste des pages web et des images, qui sont déjà pas mal optimisées (compressées, sprites, mise en cache,..).
J'ai donc installé dessus PHP5, Apache/2.2.16 (Debian), MySQL 5.1.49 et qques autres trucs sans importances.
Mon soucis est que Apache ne répond pas du tout comme je le souhaite.
Lorsque je fais un top, je vois le process mysqld qui tourne entre 10 et 50%, et tous les process apache2 qui suivent, qui tournent entre 0 et 2%. Au niveau des CPU(s) used, même à l'heure de pointe ca dépasse pas 10%.
Le soucis est que de temps en temps, Apache me lache, dans mon top je vois tous les process disparaitr et finalement ne reste que le process mysqld.. Si je lance un "service apache2 statuts", ca me dit running..
Si je ne fais rien et que j'attends quelques secondes (parfois 1-2 minutes), ca se relance tout seul, et les process reviennent.
En dehors de ça, il est parfois quasiment impossible de se connecter à l'heure de pointe sur le site, comme si Apache ne répondait pas, où était surchargé.. Pourtant le serveur est loin d'utiliser sa pleine capacité....
Je vous file les valeurs critiques de la config d'apache :
/etc/apache2/apache2.conf
/etc/php5/apache2/php.ini
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Timeout 20 KeepAlive Off MaxKeepAliveRequests 300 KeepAliveTimeout 10 <IfModule mpm_prefork_module> StartServers 10 MinSpareServers 10 MaxSpareServers 50 ServerLimit 512 MaxClients 512 MaxRequestsPerChild 400 </IfModule> <IfModule mpm_worker_module> StartServers 10 MinSpareThreads 20 MaxSpareThreads 100 ThreadLimit 128 ThreadsPerChild 20 ServerLimit 512 MaxClients 512 MaxRequestsPerChild 400 </IfModule> <IfModule mpm_event_module> StartServers 10 ServerLimit 512 MaxClients 512 MinSpareThreads 20 MaxSpareThreads 100 ThreadLimit 128 ThreadsPerChild 20 MaxRequestsPerChild 400 </IfModule>
/etc/mysql/my.cnf
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2max_execution_time=30 memory_limit = 64M
Dans mon phpmyadmin, mon max de connexions simultanées est 380 (c'est élevé mais je crois que c'est à cause des problèmes de lags tout ça).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 key_buffer = 64M max_allowed_packet = 32M thread_stack = 384K thread_cache_size = 64M max_connections = 500 table_cache = 256M thread_concurrency = 16 query_cache_limit = 4M query_cache_size = 256M
Le traffic est d'un giga par heure en moyenne, 100 requêtes par seconde en moyenne.
Mais mysql m'a l'air de tourner tout à fait correctement contrairement à Apache.
J'ai cherché sur les forums, lu des trucs concernant tel ou tel paramètre, essayé une multitudes de valeurs, peut-être je les combinais mal je sais pas, mais ça commence à durer et les visiteurs en ont marre et moi plus qu'eux encore.
J'avais ces soucis sur un précédent serveur, j'ai pris celui ci beaucoup plus puissant que l'ancien, et rien ne change, c'est même parfois pire.. Je suis certain que c'est un soucis de config. Un expert résoudrait probablement ça en 10 minutes chrono..
Si quelqu'un a des solutions à me proposer, ou connait quelqu'un qui s'y connait en configuration serveur web linux et qui serait prêt à m'aider, une aide serait vraiment la bienvenue.
Merci d'avance de m'avoir lu, j'espère que ces infos peuvent vous servir.
Partager