web-dev-qa-db-fra.com

Comment puis-je vérifier le nombre de connexions HTTP ouvertes actuellement?

Je veux savoir combien de personnes sont connectées à mon serveur. Puisque je fais des applications de comètes, c'est important

7
Alex

Il y a environ un million de façons de le faire, mais:

netstat | grep http | wc -l

Gardez à l'esprit que http est un protocole sans état. Chaque ligne peut représenter un client ouvrant plusieurs sockets pour saisir différents fichiers (css, images, etc.) qui resteront pendant un certain temps dans un état timewait.

25
David

Voici quelques commandes de netstat à l'aide desquelles vous pouvez vérifier le nombre de connexions d'un serveur.

Pour afficher toutes les connexions Internet actives aux serveurs, seules les connexions établies sont incluses.

netstat -na

Pour afficher uniquement les connexions Internet actives au serveur sur le port 80 et trier les résultats, laissez reconnaître de nombreuses connexions provenant d'une seule IP

netstat -an | grep :80 | sort

Pour afficher la liste de toutes les adresses IP impliquées au lieu de simplement compter.

netstat -n -p | grep SYN_REC | sort -u
5
Stephen Lembert

Si votre serveur Web est Apache, vous pouvez également utiliser la page server-status (après l'avoir activé).

4
lg.

Je sais que c'est une vieille question, mais je l'ai trouvée en cherchant un moyen ordonné de compter toutes les connexions entrantes vers un port donné. Le problème avec une recherche globale d'un port est que vous récupérerez également les connexions sortantes, faussant vos numéros.

Par exemple:

tcp        0      0 10.224.38.158:8080          10.225.239.6:38194          ESTABLISHED
tcp        0      0 10.224.38.158:8080          10.225.239.6:56825          ESTABLISHED
tcp        0      0 10.224.38.158:51512         10.226.194.28:8080          ESTABLISHED
tcp        0      0 10.224.38.158:51960         10.226.194.28:8080          TIME_WAIT
tcp        0      0 10.224.38.158:46937         10.226.194.28:8080          ESTABLISHED
tcp        0      0 10.224.38.158:51331         10.226.194.28:8080          TIME_WAIT
tcp        0      0 10.224.38.158:8080          10.225.239.6:29634          ESTABLISHED

Un grep aveugle -c ou awk | wc -l retournerait "7", mais il n'y a en fait que "3" connexions entrantes. Quoi qu'il en soit, je n'ai pas trouvé de moyen gracieux de le faire, et mon awk-fu n'est pas le cas, mais j'ai finalement opté pour netstat -an, utiliser awk pour imprimer uniquement la colonne "adresse locale" et compter les instances de la port que je recherche.

netstat -an | grep -c 8080

SORTIE: 91

netstat -an | awk '{print $4}' | grep -c 8080

SORTIE: 31

Donc, 31 sockets connectés sur le port 8080. J'espère que ça aide. Si quelqu'un connaît une manière plus concise de le faire, alors partagez-la.

3
Niall