Como eu verifico quantas conexões HTTP estão abertas atualmente? [fechadas]

7

Eu quero saber quantas pessoas estão conectadas ao meu servidor. Como estou fazendo aplicativos cometidos, isso é importante

    
por Alex 13.05.2011 / 06:30

4 respostas

21

Existem cerca de um milhão de maneiras de fazer isso, mas:

netstat | grep http | wc -l

Tenha em mente que http é um protocolo sem estado. Cada linha pode representar um cliente abrindo vários soquetes para pegar arquivos diferentes (css, imagens, etc) que ficarão por algum tempo em um estado de tempo de espera.

    
por 13.05.2011 / 07:00
5

Abaixo estão alguns comandos do netstat usando o qual você pode verificar o número de conexões que um servidor possui.

Para exibir todas as conexões ativas da Internet para os servidores, apenas as conexões estabelecidas são incluídas.

netstat -na

Para exibir apenas as conexões ativas da Internet com o servidor na porta 80 e classificar os resultados, permita reconhecer muitas conexões provenientes de um IP

netstat -an | grep :80 | sort

Para exibir a lista de todos os endereços IP envolvidos, em vez de apenas contar.

netstat -n -p | grep SYN_REC | sort -u
    
por 24.05.2011 / 06:24
4

Se o seu servidor web for apache, você também pode usar a página status do servidor (depois habilitado).

    
por 13.05.2011 / 14:29
3

Eu sei que essa é uma pergunta antiga, mas a encontrei enquanto procurava uma forma organizada de contar todas as conexões de entrada para uma determinada porta. O problema com uma busca geral por uma porta é que você também vai pegar conexões de saída, distorcendo seus números.

Por exemplo:

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

Um grep-c ou awk indiscriminado | wc -l retornaria "7", mas na verdade existem apenas "3" conexões de entrada. De qualquer forma, eu não encontrei uma maneira elegante de fazer isso, e meu awk-fu não é assim, mas eu finalmente optou por netstat -an, use o awk para imprimir apenas a coluna "endereço local" e conte as instâncias do porta que estou procurando.

$ netstat -an | grep -c 8080 91

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

Então, 31 soquetes conectados na porta 8080. Espero que ajude. Se alguém souber uma maneira mais concisa de fazer isso, então compartilhe-a.

    
por 26.08.2013 / 21:00