Qu'est-ce que les users voient lorsque Apache atteint MaxClients?

Parfois, dans mon file d'erreur Apache, je findai:

[error] server reached MaxClients setting, consider raising the MaxClients setting 

J'ai finalement abaissé MaxClients dans le passé (à 60) en raison de problèmes avec la perte de memory, mais j'aimerais savoir exactement ce qui se passe à la fin de l'user lorsque cette limite est atteinte sur le server. Est-ce que la page à laquelle ils accèdent prend plus de time à charger? Est-ce qu'ils reçoivent une sorte de message d'erreur?

Au début, les requests des clients seront mises en queue, jusqu'à ce qu'il y ait un process / thread qui soit gratuit sur le server apache. Ainsi, les clients verront un retard dans le chargement de la page. Consultez la documentation des parameters de MaxClients pour plus d'informations.

Lorsqu'il est placé dans la queue, la request du client peut éventuellement expirer du côté client. Ensuite, l'user verra une page d'erreur dans son browser indiquant que le server prend trop de time pour donner une réponse. La valeur de temporisation par défaut est de 300 secondes dans Firefox , par exemple. Ou l'user annulera la request avant le timeout d'attente …

Ensuite, si le server obtient plus de requests et ne peut pas get un process / thread gratuit dans le time, la queue ListenBacklog peut être remplie (par défaut, les requêtes en attente 511) et toute request ultérieure ne sera pas ListenBacklog . Le browser indique ensuite à l'user qu'il ne peut pas se connecter au site, comme si le site était complètement en panne.

Cette queue est gérée au niveau OS, dans l'implémentation TCP. Sous Linux, la page man listn vous donnera plus d'informations sur la façon dont elle est gérée. Voici une autre lecture très approfondie de la queue du queue TCP dans les systèmes linux et BSD .