Apache arrête de diffuser après avoir atteint le paramètre MaxClients


11

J'ai mon serveur apache configuré avec MPM travailleur comme suit:

<IfModule mpm_worker_module>
    ServerLimit         20
    ThreadLimit         50
    StartServers        3
    MaxClients          1000
    MinSpareThreads     50
    MaxSpareThreads     200
    ThreadsPerChild     50
    MaxRequestsPerChild 10000
</IfModule>

Le serveur prend environ 2 millions de demandes par jour. Lorsque les demandes arrivent, le serveur apache cessera d'accepter une nouvelle connexion (le navigateur ne peut pas se connecter). Et le processus restera dans la liste des processus. L'utilisation de la mémoire est d'environ 10% et le processeur est de 0%. Il semble que le serveur apache n'ait pas pu recycler les processus quand il le devrait.

J'ai trouvé quelque chose lié au crash dans les journaux d'erreurs:

[Mon Aug 15 12:36:24 2011] [error] child process 11444 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 12090 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 10698 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 12144 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 12032 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:24 2011] [error] child process 10699 still did not exit, sending a SIGKILL
[Mon Aug 15 12:36:25 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 15 12:37:31 2011] [notice] mod_python: Creating 8 session mutexes based on 20 max processes and 50 max threads.
[Mon Aug 15 12:37:31 2011] [notice] mod_python: using mutex_directory /tmp 
[Mon Aug 15 12:37:31 2011] [notice] Apache/2.2.17 (Ubuntu) mod_python/3.3.1 Python/2.7.1+ mod_ssl/2.2.17 OpenSSL/0.9.8o configured -- resuming normal operations
[Mon Aug 15 15:36:46 2011] [error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting
[Mon Aug 15 15:38:48 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
[Mon Aug 15 16:17:31 2011] [warn] child process 766 still did not exit, sending a SIGTERM
[Mon Aug 15 16:17:31 2011] [warn] child process 767 still did not exit, sending a SIGTERM

Des idées? Merci!


quels sont les paramètres de keepalive? Effectuez-vous une sorte d'interrogation longue avec votre application?
regilero

Réponses:


7

Vous voudrez peut-être vérifier l'état de votre serveur à l'aide de mod_status. Vous pouvez avoir des connexions qui ne se déconnectent pas et sont bloquées dans un état «envoi de réponse» (W). Consultez cet article sur la façon de diagnostiquer ce rapport Résoudre httpd maxclients et modstatus

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.