Au cours des deux derniers jours, j'ai construit un ensemble de serveurs Apache. Chaque serveur dispose de 4 Go de mémoire et utilise le mode prefork. Le nombre de connexions défini au début était trop faible et il a fallu beaucoup de temps pour répondre aux demandes des utilisateurs. , j'ai modifié le fichier de configuration Apache 2.0.59 httpd.conf :
Citation
# MPM pré-fourche
# StartServers : nombre de processus serveur à démarrer
# MinSpareServers : nombre minimum de processus serveur qui restent en réserve
# MaxSpareServers : nombre maximum de processus serveur conservés en réserve
# MaxClients : nombre maximum de processus serveur autorisés à démarrer
# MaxRequestsPerChild : nombre maximum de requêtes traitées par un processus serveur
Démarrer les serveurs 10
MinSpareServeurs 10
MaxSpareServers 15
Limite du serveur 2000
Clients Max 2000
Nombre maximal de requêtes par enfant 10 000
Vérifiez le nombre de processus httpd (c'est-à-dire le nombre de requêtes simultanées qu'Apache peut gérer en mode prefork) :
Commande Linux :
Citation
ps -ef | grep httpd |
Exemple de résultat renvoyé :
1388
Indique qu'Apache peut gérer 1388 requêtes simultanées. Cette valeur peut être automatiquement ajustée par Apache en fonction de la charge. La valeur maximale de chaque serveur de mon groupe a atteint 2002.
Vérifiez le nombre de requêtes simultanées d'Apache et son état de connexion TCP :
Commande Linux :
Citation
netstat -n | awk '/^tcp/ {++S[$NF]} END {pour (a dans S) imprimer a, S[a]}'
(Cette affirmation vient de Je l'ai obtenu de M. Wang, directeur technique du département commercial de Sina Interactive Community, ce qui est très bien)
Exemple de résultat renvoyé :
LAST_ACK 5
SYN_RECV30
ÉTABLI EN 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
SYN_RECV indique le nombre de requêtes en attente de traitement ; ESTABLISHED indique l'état normal de transmission des données ; TIME_WAIT indique le nombre de requêtes qui ont été traitées et attendent la fin du délai d'attente.
Concernant les changements dans l’état TCP, cela ressort clairement de la figure suivante :

STATUT : DESCRIPTION CLOSED : Aucune connexion n'est active ou en cours LISTEN : Le serveur est en attente d'appels entrants SYN_RECV : Une demande de connexion est arrivée, en attente de confirmation SYN_SENT : L'application a démarré, ouvrant une connexion ESTABLISHED : Statut normal du transfert de données FIN_WAIT1 : L'application indique qu'il est terminé FIN_WAIT2 : l'autre côté a accepté de libérer ITMED_WAIT : attend que tous les paquets meurent CLOSING : les deux côtés tentent de fermer en même temps TIME_WAIT : l'autre côté a initialisé une libération LAST_ACK : attend que tous les paquets meurent