Problème Apache MaxClients

Dans mes journaux d'erreurs, je vois:

server reached MaxClients setting, consider raising the MaxClients setting 

Mon paramètre MaxClients est 150. Cependant, lorsque je calcule ce qui semble être un paramètre optimal de MaxClients, je propose:

 Mem used by 1 Apache process = 16 Mem available to Apache = 197 MaxClients = 12 (197/16) 

Donc, je devrais passer à MaxClients jusqu'à 12 parce que mes calculs montrent que c'est la RAM que j'ai disponible ou devrais-je augmenter la limite que suggère le journal des erreurs (ou mes calculs sont-ils sans valeur parce que je comprends mal quelque chose)?

2 Solutions collect form web for “Problème Apache MaxClients”

Envisagez de configurer KeepAlive Off dans votre httpd.conf si vous utilisez un Prefork Apache. Plutôt que chaque enfant tenant une connection inactive, ouvrir Apache va fermer chaque connection après l'avoir rempli. Cela réduira les connections générales et les process enfants nécessaires pour servir. Il ajoute un peu plus de time car chaque nouvelle requête doit renégocier avec votre server plutôt que de réutiliser une connection ouverte.

(edit) Oh, oui, la question. Je quitterais MaxClients seul ou le configurerai en fonction de la RAM que vous avez. En supposant que vous disposez de RAM plus que suffisante, la règle de base est de 2 à 4 fois le nombre de kernelx de CPU que vous supposons que votre backend n'est pas très lent, sinon utilisez la RAM comme facteur limitant. Cependant, je pense que l'arrêt de KeepAlive va laisser tomber le nombre d'enfants dont vous avez besoin de quelque chose d'assez normal et que vous arrêterez de franchir la limite.

(edit2) Maintenant, voici où il devient délicat. Si votre server Apache est un server d'applications qui exécute principalement PHP, Ruby, etc code et datatables de process qu'il obtient à partir de différents backends ou de disque dans des pages rendues, la règle 2-4x fonctionne. En général, vous allez graver 250 ms de CPU par page, si c'est une grande page non codée, ou 4 pages par cœur. Si vous disposez d'un server autonome, vous serez en mesure de répondre à d'autres requêtes, car beaucoup d'entre elles seront de petites images, css, js, etc., qui seraient normalement desservies par un autre set de servers pour un server d'applications. Je suppose que vous avez un server, donc laisser tout seul est probablement dans votre meilleur pari.

Au cours de mon dernier travail, nous avons mis en place des machines frontales 8/8 Go avec 50 MaxClients et KeepAlive Off qui ont fonctionné très bien. Dans certains cas, le réglage de MaxClients à 100 a obtenu des repères légèrement meilleurs, mais la latence globale de la génération de la page a augmenté parce que la plupart du time, nous bloquions sur divers backends ou commençons à mourir de faim pour la CPU.

Au lieu d'exécuter ce calcul, je expérimenterais pour voir ce que votre server est vraiment capable de gérer. Ce calcul est plus ou less une ligne de guidage, mais pour être certain de votre server, il suffit de le souligner pour savoir si cela est possible.

  • Obtenez Apache2.2 pour masquer les documents Microsoft en cours de modification?
  • En utilisant un domaine nu dans Apache, aucun "www" sur le domaine dans httpd.conf
  • La prévention des liens chauds ne fonctionne pas
  • La réécriture ne fonctionne pas dans httpd.conf
  • Quels parameters pourraient être modifiés pour réduire l'utilisation du processeur apache et utiliser plus de RAM?
  • Configuration d'IPv6 sur Apache2
  • Rotation du journal Apache
  • Comment faire pour Proxypass sur Apache?
  • Configuration de httpd.conf pour gérer un site Web et une subversion
  • .htaccess ne fonctionne pas sur Cent Os 6.4
  • Impossible de configurer le module Apache de MaxMindDB
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.