web-dev-qa-db-fra.com

Comment vérifier combien de connexions sont ouvertes actuellement sur un fichier spécifique TCP?

Je fais des benchmarks Comet et je voudrais voir combien de connexions ouvertes que j'ai.

En fait, j'utilise netstat:

netstat -ant | grep 8080 | grep EST | wc -l

Mais il a besoin d'environ 4-6 minutes pour répertorier le nombre, existe-t-il un outil qui peut le montrer en temps réel? Le nombre de connexions ouvertes est compris entre 100 000 et 250 000.

8
Nenad

Je ne sais pas si lsof est meilleur, mais essayez cela:

lsof -ni:8080 -sTCP:ESTABLISHED | wc -l
8
ThorstenS

Si vous avez juste besoin de voir les statistiques de Connecon, essayez ss utilitaire de iproute Suite:

# ss -s
Total: 1788 (kernel 3134)
TCP:   1638 (estab 1409, closed 162, orphaned 0, synrecv 0, timewait 127/0), ports 0

Transport Total     IP        IPv6
*         3134      -         -        
RAW       0         0         0        
UDP       74        69        5        
TCP       1476      1444      32       
INET      1550      1513      37       
FRAG      0         0         0     

Vous pouvez également afficher des informations détaillées sur toutes les connexions établies comme celle-ci:

ss -n state established

... ou des connexions SSH uniquement:

ss -n state established '( dport = :ssh or sport = :ssh )'

Certains chiffres en bas de - cette page peut également vous intéresser.

5
artyom

Une autre option serait de lire directement /proc/net/tcp Directement. Pour voir tous les connexions établies TCP sur, 8080, vous feriez quelque chose comme

$ printf %04X 8080
1F90
$ grep :1F90 /proc/net/tcp | grep ' 01 ' | wc -l

Si vous souhaitez le faire dans un seul processus (moins IO surcharge) et gérer les cas d'angle de coin, vous vous indique le nombre de connexions TCP établies dans le port local 8080:

$ Perl -anle '
          $F[1] =~ /:1F90/ and $F[3] =~ /01/ and $cnt++;
          END { print 0+$cnt }
         '  /proc/net/tcp

Si le logiciel de votre ordinateur à l'écoute de 8080 a une assistance IPv6, vous devez lire /proc/net/tcp6 Aussi; Si l'utilisation du programme des sockets IPv6, les connexions s'affichent même s'ils utilisent IPv4.

1
jon

plus facile est

#netstat -at | wc -l

Il affichera le nombre de TCP connexion sur le système ...

0
user162048