Parfois, dans mon journal des erreurs Apache, je trouve:
[error] server reached MaxClients setting, consider raising the MaxClients setting
J'ai volontairement réduit MaxClients dans le passé (à 60) en raison de problèmes de manque de mémoire, mais j'aimerais savoir exactement ce qui se passe du côté de l'utilisateur lorsque cette limite est atteinte sur le serveur. La page à laquelle ils accèdent prend-elle plus de temps à charger? Obtiennent-ils une sorte de message d'erreur?
apache-2.2
performance
performance-tuning
des plantes
la source
la source
Réponses:
Au début, les demandes des clients seront mises en file d'attente, jusqu'à ce qu'un processus / thread soit libéré sur le serveur apache. Ainsi, les clients verront un retard dans le chargement de la page. Voir la
MaxClients
documentation des paramètres pour plus d'informations.Lorsqu'elle est placée dans la file d'attente du backlog, la demande client peut éventuellement expirer côté client. Ensuite, l'utilisateur verra une page d'erreur dans son navigateur indiquant que le serveur prend trop de temps pour donner une réponse. Le délai d'expiration par défaut est de 300 secondes dans Firefox , par exemple. Ou l'utilisateur annulera la demande avant l'expiration ...
Ensuite, si le serveur reçoit plus de demandes et ne peut pas obtenir un processus / thread libre à temps, la
ListenBacklog
file d'attente peut être remplie (par défaut, 511 demandes en file d'attente) et toute demande ultérieure ne sera pas servie du tout. Le navigateur indiquera alors à l'utilisateur qu'il ne peut pas se connecter au site Web, comme si le site Web était complètement hors service.Cette file d'attente de backlog est gérée au niveau du système d'exploitation, dans l'implémentation TCP. Sous linux, la
listen
page de manuel vous donnera plus d'informations sur la façon dont elle est gérée. Voici une autre lecture très intéressante sur la file d'attente de backlog TCP dans les systèmes Linux et BSD .la source
listen
page de manuel. Je ne suis pas sûr qu'il existe un moyen direct de savoir ce que contient cette file d'attente. Voir également cette question SO . J'ai ajouté plus d'informations à ma réponse.