web-dev-qa-db-fra.com

serveur Web nombre maximum d'utilisateurs qu'Apache peut gérer?

Ma question est quel est le nombre maximum d'utilisateurs que le serveur Web Apache 2.2.2 peut gérer, j'ai un site Web qui obtient parfois plus de 300+ utilisateurs simultanés, cependant la configuration par défaut d'Apache est fixée à 150 maximum, je sais que je peux augmenter cette valeur, Cependant, si je crains de ne pas pouvoir utiliser la capacité qu'Apache peut gérer, mon serveur est assez puissant avec un processeur AMD à 8 cœurs avec 16 GM mémoire

  1. Comment puis-je déterminer combien de demandes Apache peut gérer,

  2. En général, quelles sont les options/configurations pour un meilleur optimisé pour les charges de serveur. c'est-à-dire désactiver garder en vie ..etc

  3. Lorsque j'augmente la taille maximale de l'utilisateur, MySql consomme la majeure partie de la puissance du processeur avec parfois plus de 150% de CPU ... je ne sais pas pourquoi ..

Des experts?

16
mahen3d

Apache est livré avec 40 à 100 threads maximum. Il peut être augmenté pour permettre à plus de threads d'être traités en même temps.

L'application doit être surveillée avant d'y apporter des modifications. En fonction de la réponse, essayez de modifier "ThreadsPerChild" et "AcceptThreads" en conséquence.

La quantité par défaut de nombre "maximum" de threads est généralement suffisante; cependant, il peut y avoir des conditions dans lesquelles ce nombre doit être augmenté. L'utilisation des threads peut être surveillée. Pour surveiller, démarrez l'instance administrative, sélectionnez le serveur HTTP en question, puis sélectionnez Statistiques du serveur en temps réel en bas à gauche.

Si les threads inactifs sont proches de ou à zéro, c'est un problème. Tant que Threads inactifs est égal à zéro, aucune nouvelle connexion client ne peut être établie. Les nouveaux clients seront mis en attente jusqu'à ce qu'un thread soit disponible. Notre recommandation pour cette condition est d'ajouter la directive ThreadsPerChild avec une valeur augmentée, environ le double de la valeur actuelle si elle était comprise entre 40 et 100, ou plus 50, si elle était supérieure à 100. La valeur minimale requise (pour la valeur maximale paramètre) ne peut être trouvé que par essais et erreurs. Si après avoir augmenté la valeur, le serveur fonctionne correctement, arrêtez le test.

( source )

8
user1268571

Recommandations

Veuillez utiliser Keep Alive car cela augmentera les performances de votre serveur. Ne désactivez les paramètres de maintien en vie que lorsqu'il existe un pare-feu entre le Web ou l'application. Ou vous êtes confronté à des problèmes de perte de package/msg de réinitialisation de connexion.

  • Vous pouvez augmenter la limite maximale du client, mais la limite dépendra totalement de la configuration de votre serveur. En moyenne, chaque thread Apache prendra, disons, 25 Mo. Dans ce cas, vous devez conserver la valeur maximale du client à (charge MAX * sur chaque thread)/(thread alloué RAM *). Maintenez toujours ce rapport à 1/2.
  • Vous pouvez augmenter vos utilisateurs à n'importe quel nombre comme expliqué ci-dessus en augmentant les limites maximales de clients et de serveurs de vos systèmes.
  • Définissez toujours les limites min-maxspare ou min-maxthread.
  • Un point très important si vous ne parvenez pas à augmenter la limite maximale de clients, augmentez simplement la limite d'écoute de backlog, cela prendra les demandes supplémentaires dans la file d'attente, ce qui empêchera à son tour la perte de connexion.
3
Sourabh Sharma

Vous devrez modifier le fichier httpd.h pour permettre un nombre maximal de clients au-delà de la limite de 256 codés en dur, puis recompiler le programme httpd. Ceci est suggéré dans le fichier de configuration pour httpd.

1
Henry McKelvey

Voir ce guide pour un aperçu: http://www.devside.net/articles/Apache-performance-tuning

Il s'agit principalement du MPM Apache que vous avez sélectionné (basé sur un thread ou basé sur un processus) et ses paramètres.

Ensuite, vous devez le faire correspondre avec les paramètres de KeepAlive (j'utilise un MPM basé sur les threads et je définis donc KeepAlives sur On et pendant 3 secondes).

Utilisez-vous Apache sous Linux ou Windows? Quel MPM?

0
rightstuff