Bonjour =)
Je suppose que le sujet revient assez souvent, et pour cause, j'ai l'impression que ce n'est pas une mince affaire que de régler au mieux son serveur apache :p (et mysql dans la foulé, mais ce n'est pas le bon forum ^^)
J'ai lu le plus possible de fils de discussion, des manuels sur les différentes variables du fichier, mais j'en reste a ne pas réussir a le configuré au mieux.
Depuis la dernière mise a jour de notre site (essentiellement graphique), le serveur a montré de gros signe de fatigues. Mémoire RAM complètement saturé, accès impossible (j'ai même du demander un reboot matériel il y a peu) ...
Actuellement, le serveur fonctionne très bien avec cette configuration, mais pas longtemps ^^ La RAM se remplie de plus en plus, jusqu'à arrivé a saturation. A partir de là il accumule la charge et ça devient l'enfer. Le seul moyen potable est de redémarrer le serveur apache régulièrement (ce en vient a très souvent sur l'échelle de la journée ...) Ouaip, ce n'est pas propre du tout :/
Le site et son trafic:
Donc, pour résumer nos pages sont assez lourdes, pour environ 5000 visiteurs / jours pour 50 000 à 70 000 pages vues / jours.
Le serveur:
- Intel Core2Duo 2x 2.66+ GHz 64bits
- 4 Go DDR2
- DD SATA2
- 2 Go pour le Swap
Voilà a quoi peut ressembler le top lorsque le serveur sature:
La RAM est pleine, le swap aussi ...
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
34
35
36
37
38 top - 18:22:44 up 76 days, 16:07, 1 user, load average: 37.06, 41.05, 40.67 Tasks: 385 total, 2 running, 383 sleeping, 0 stopped, 0 zombie Cpu(s): 1.0%us, 26.0%sy, 0.0%ni, 0.0%id, 72.4%wa, 0.2%hi, 0.5%si, 0.0%st Mem: 4019728k total, 4004732k used, 14996k free, 8760k buffers Swap: 2088432k total, 2088428k used, 4k free, 65448k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 271 root 15 -5 0 0 0 D 10 0.0 172:16.75 kswapd0 13898 dtc 20 0 252m 19m 2804 D 4 0.5 1:39.32 apache2 13730 dtc 20 0 250m 19m 2700 D 3 0.5 1:52.23 apache2 3553 dtc 20 0 242m 14m 2720 D 3 0.4 1:26.61 apache2 3619 dtc 20 0 241m 14m 2652 D 3 0.4 1:11.31 apache2 11714 amavis 20 0 210m 30m 2084 D 3 0.8 0:43.06 amavisd-new 13686 dtc 20 0 244m 17m 2752 D 3 0.4 1:41.01 apache2 13763 dtc 20 0 248m 20m 2764 D 3 0.5 1:45.85 apache2 13820 dtc 20 0 247m 14m 2712 D 3 0.4 1:35.61 apache2 23694 mysql 20 0 572m 93m 2996 S 3 2.4 412:45.80 mysqld 3775 dtc 20 0 248m 21m 2716 D 2 0.6 1:35.95 apache2 13751 dtc 20 0 238m 13m 2700 D 2 0.3 1:39.63 apache2 13802 dtc 20 0 251m 22m 2708 D 2 0.6 1:46.48 apache2 13925 dtc 20 0 252m 18m 2688 D 2 0.5 1:37.41 apache2 13713 dtc 20 0 249m 21m 2716 D 2 0.5 1:38.63 apache2 13897 dtc 20 0 247m 20m 2744 D 2 0.5 1:44.38 apache2 13714 dtc 20 0 246m 13m 2672 D 1 0.4 1:44.72 apache2 13836 dtc 20 0 248m 18m 2680 D 1 0.5 1:39.00 apache2 13673 dtc 20 0 230m 5764 2708 S 1 0.1 1:17.63 apache2 13946 dtc 20 0 244m 11m 2664 D 1 0.3 1:15.22 apache2 3527 dtc 20 0 232m 7924 2748 S 0 0.2 1:05.24 apache2 3611 dtc 20 0 252m 17m 2720 S 0 0.4 1:48.07 apache2 3615 dtc 20 0 244m 18m 2752 D 0 0.5 1:31.34 apache2 3773 dtc 20 0 249m 13m 2712 D 0 0.3 1:26.73 apache2 13675 dtc 20 0 238m 14m 2704 S 0 0.4 1:41.43 apache2 1 root 20 0 10308 192 164 S 0 0.0 0:24.60 init 2 root 15 -5 0 0 0 S 0 0.0 0:11.66 kthreadd 3 root RT -5 0 0 0 S 0 0.0 0:00.98 migration/0 4 root 15 -5 0 0 0 S 0 0.0 0:51.03 ksoftirqd/0 5 root RT -5 0 0 0 S 0 0.0 0:01.12 migration/1 [...]
La configuration de apache2.conf:
J'ai tenter de baisser de plus en plus MaxKeepAliveRequests afin de réduire la consommation de ressources, mais sans grands résultats :/
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 Timeout 60 KeepAlive On MaxKeepAliveRequests 35 KeepAliveTimeout 15 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 70 MaxSpareServers 300 ServerLimit 512 MaxClients 328 MaxRequestsPerChild 3000 </IfModule> <IfModule mpm_worker_module> StartServers 5 ServerLimit 512 MaxClients 328 MinSpareThreads 70 MaxSpareThreads 300 ThreadsPerChild 75 MaxRequestsPerChild 3000 </IfModule>
D'ailleurs, est-ce normal que la RAM soit autant remplie jusqu'à aller a saturer ?
(Nos connexions a mysql sont bien fermé et Cie ^^)
Donc si vous pouviez me donner un coup de pouce ^^ Merci beaucoup!
Partager