Java >> Java tutorial >  >> Tag >> Tomcat

Find ud af antallet af forbindelser til tomcat-serveren

Den mest pålidelige måde ville være at søge efter ip.addr.of.srv:port i netstat . Her er det Windows-baserede eksempel (beklager, ingen Linux-guru her;) )

netstat -np tcp | find "12.34.56.78:80"

Erstat 12.34.56.78 via IP, hvor Tomcat lytter og 80 ved havn, hvor Tomcat lytter med.

Dette er faktisk ikke et programmeringsproblem, derfor stemte jeg for at migrere dette spørgsmål til serverfault.com.


Og hvis du har brug for at finde ud af, hvad hver forbindelse gør, så brug dette på linux

netstat -an | grep :8080 | awk '{print $6}'

Hvis der er tre forbindelser, vil du se

LISTENTIME_WAITTIME_WAIT

Og hvis du kun vil tælle forbindelser, der er i TIME_WAIT-tilstand

netstat -an | grep :8080 | grep TIME_WAIT | wc -l

Se afsnittet under Tomcat Manager for et eksempel på optælling af sessioner i en webapp.

At tælle antallet af forbindelser er nok lidt sværere. Tomcat starter en ny tråd for hver anmodning, der kommer ind op til et maksimum på maxProcessors . Ud over dette nummer er anmodningerne i kø op til et maksimum på acceptCount . Forespørgsler ud over dette antal afvises/frafaldes (eller går ned, jeg er ikke sikker). Egenskaberne kan overvåges ved hjælp af en JConsole:Trin her. De specifikke egenskaber nævnt ovenfor er egenskaber for HTTP Connector.

REDIGERING 1:

Efter at have kigget gennem kildekoden til CoyoteConnector og AJP Connector, er der en privat ejendom kaldet curProcessors som sporer antallet af processorer, der er i brug. Tilføjelse af curProcessors-variablen til mbeans-filen for connectors ser dog ikke ud til at vise den aktuelle værdi i JConsole-displayet.

Bemærk:Mbeans XML-filen, som jeg ændrede, var i tomcat\server\lib\catalina.jar og er i mappen org\apache\catalina\connector i jar'en. Nedenfor er et eksempel på den post, jeg tilføjede:

<attribute   name="curProcessors"
    description="the number of processors currently in use"
    type="int"/>

Java tag