web-dev-qa-db-fra.com

Comment trouver le nombre de sessions simultanées par seconde?

En tant que serveur Web hébergeant une application pour un client, qui est un serveur de gros volume ou un serveur de transaction, je suis tenu de connaître le "nombre de connexions simultanées" actuellement utilisées par le serveur. Cela est nécessaire pour une solution, par exemple NGFW ou WAF basée sur cette métrique.

Puis-je exécuter un script ou un plugin intégré pour trouver ce numéro? J'ai besoin d'une solution pour Apache ainsi que IIS.

2
asadz

Ce que vous pouvez faire est d’exécuter votre site Web sur un serveur auquel vous avez un accès complet (tel qu’un serveur dédié), puis entrez le shell et voyez combien de fois le programme serveur est exécuté à partir d’un programme de surveillance du système. Depuis que j'utilise linux, je vais expliquer pour ce système d’exploitation que la moitié des serveurs fonctionnent de toute façon.

option 1

J'ai une configuration dans laquelle Apache est le serveur et fonctionne en mode prefork, qui est essentiellement une instance de l'application Apache (nommée httpd).

Lorsque le serveur est en cours d’exécution, dans le shell, vous pouvez utiliser la commande TOP pour obtenir une version textuelle en direct des applications en cours d’exécution, ainsi que l’utilisation du processeur et de la mémoire de chaque application.

Utilisez les touches > et < pour trier les valeurs jusqu'à ce que vous voyiez un groupe de lignes dans lesquelles la commande est httpd. Cela vous indiquera combien de processus Apache (httpd) sont prêts à répondre aux demandes des utilisateurs. Examinons maintenant le pourcentage d'utilisation du processeur à côté de chacun. Pour chaque processus où le pourcentage de CPU est élevé, ce processus est utilisé et l'utilisateur suivant qui souhaite accéder utilisera le processus suivant, etc. C'est une façon de savoir combien de connexions simultanées sont traitées par seconde.

option 2

Déterminez le port que votre serveur écoute pour gérer les demandes de site Web. Ce serait normalement le port 80 pour HTTP et je crois le port 443 pour HTTPS.

Je ne me souviens pas de la commande complète sous linux, mais vous pouvez en entrer une qui vous indique à ce moment combien de connexions sont utilisées

Dans la ligne de commande unix, tapez:

lsof | grep TCP | grep httpd

Ensuite, vous verrez tous vos processus Apache. avec un mot clé entre parenthèses à la fin de chaque ligne. LISTEN signifie que le processus est prêt pour une nouvelle connexion et ESTABLISHED signifie que la connexion est établie, et tout le reste ... vous pouvez supposer en toute sécurité que le processus est utilisé pour une connexion.

Je ne sais pas si l'un de ces modes fonctionne aussi bien pour les autres modes Apache, à l'exception de prefork, mais cela devrait être un point de départ pour la capture en temps réel du nombre de connexions simultanées par demande d'informations.

Pour ce qui est de la vitesse par seconde, le mieux que vous puissiez faire est d'écrire un script qui appelle la commande ci-dessus, puis détermine le nombre de connexions simultanées par exécution de la commande. Le nombre de connexions simultanées par commande est de l'ordre de quelques fois par seconde. être considéré comme le nombre de connexions par seconde.

idée pour IIS

Si vous cherchez une solution pour IIS, cela risque d’être plus difficile, car Linux propose de nombreux programmes Unix spécialement conçus pour la gestion d’Internet et Windows est un peu en retard sur le jeu. Pour IIS, je contacterais Microsoft pour savoir s’il dispose d’une sorte d’utilitaire de ligne de commande indiquant le nombre de connexions à l’ordinateur via les ports 80 (http) ou 443 (https), puis rédige un script permettant d’extraire les informations pertinentes. .

1
Mike