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

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/php5/apache2/php.ini

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
max_execution_time=30
memory_limit = 64M
/etc/mysql/my.cnf

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
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).
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.