Le Forum Non Officiel de la DEDIBOX
Vous n'êtes pas identifié.
Salut,
Je poste car je commence serieusement a en avoir marre de apache.
Sur Kelio.org, toute les 6heures environ, apache2.2.3 se met a consommer toute la mémoire et le swap disponible..
Et de ce fait, les accès disque sont très nombreux, les sites ne répondent plus, tout est lent ..
Je pensais que cela venait d'un manque de mémoire sur notre serveur (un kimsufi :p), on à donc migré vers un serveur plus puissant, avec disque SATA2, et surtout 1Go de ram DDR2.
L'ennui, c'est que celà recommence ![]()
Pourtant, quand apache2 à commencé à s'emballer, il ne devait y avoir qu'une dizaines de personnes.
Sachant que l'utilisation mémoire pour un script est limité a 16Mo, on peux conclure qu'il y a un truc qui cloche ? .. ![]()
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mp
m_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 7
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
StartServers 8
MaxClients 50
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Un petit top, au moment ou apache faisait la geule :
top - 19:03:20 up 14 days, 22:56, 1 user, load average: 56.52, 58.97, 39.29
Tasks: 129 total, 2 running, 120 sleeping, 0 stopped, 7 zombie
Cpu(s): 16.4%us, 3.2%sy, 0.0%ni, 0.0%id, 79.1%wa, 0.3%hi, 1.0%si, 0.0%st
Mem: 1022844k total, 969064k used, 53780k free, 13760k buffers
Swap: 2048276k total, 2047684k used, 592k free, 33128k cached
Et l'erreur reporté par apache2 :
[Tue Oct 30 18:51:58 2007] [error] (12)Cannot allocate memory: fork: Unable to fork new process
Bien-sur, on peux voir qu'il n'y à plus de ram disponible ![]()
J'ai lu sur un forum en anglais, que ca pouvait provenir des processus apache2 qui ne se coupent pas
Enfin, my english is not good ![]()
Et il devait y avoir une bonne 30aine de processus apache2 lancés..
Il se trouve, qu'il me suffit de restart apache2 pour que tout refonctionne comme sur des roulettes
Donc voila, i need ur help !
Merci !
Dernière modification par Mogui (2007-10-30 19:48:05)
Hors ligne
Bonjour,
Sur quel système le apache tourne-t-il ? un Linux ou BSD ? Quel genre de scripts tournent dessus ? cgi, php ?
Hors ligne
Debian Etch stable
Désolé, j'ai oublié de préciser
Hors ligne
Bizaremment j'ai un probleme similaire, 2 a 3 fois par mois, Apache commence a bouffer 400Mo de mémoire au lieu des 20Mo habituel. J'ai pas encore trouvé de solution, a part baisser le nombre maximal de requetes par process.
Hors ligne
<IfModule mp
m_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 7
C'est pas assez ça !
Hors ligne
J'ai trouvé ca dans une conf apache, deja que je n'y connais rien aux deux configs plus haut, je l'ai rajouté en utlisant plus ou moins les meme valeurs que le prefork
# perchild MPM
# NumServers ........... constant number of server processes
# StartThreads ......... initial number of worker threads in each server process
# MinSpareThreads ...... minimum number of worker threads which are kept spare
# MaxSpareThreads ...... maximum number of worker threads which are kept spare
# MaxThreadsPerChild ... maximum number of worker threads in each server process
# MaxRequestsPerChild .. maximum number of connections per server process (then it dies)
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
AcceptMutex fcntl
</IfModule>
On verra bien..
Tiens, si d'ailleurs quelqu'un à un lien vers une doc francaise à propos des processus apache, je ne dirais pas non ![]()
Edit : J'ai rien dis, je suis en prefork :
http://httpd.apache.org/docs/2.2/mpm.html
Donc le worker et perchild ne servent à rien.
Dernière modification par Mogui (2007-10-31 12:07:56)
Hors ligne