Como usar telnet e cabeçalho customizado para testar o desempenho do servidor?

1

Eu criei um cabeçalho de resposta personalizado chamado "Duration" que registra o tempo gasto para gerar a resposta. E eu configurei este cabeçalho para ser retornado somente quando o cabeçalho da requisição "Client" com o valor de "Get-Duration" for fornecido:

% telnet

% telnet> o myhost.com

---request 1
GET /index.html HTTP/1.1
Host: myhost.com
Client: Get-Duration

-----response 1
HTTP/1.1 200 OK
...
Duration: D=123123
...

Usando o telnet e o cabeçalho "Duration" acima, como planejar e realizar testes para medir o desempenho do servidor da Web ao solicitar os arquivos?

Muito obrigado GURUs !!

    
por MikeyB 24.09.2009 / 11:09

2 respostas

3

Você está fazendo errado e reinventando a roda.

Use apenas o curl:

curl -s -H "Client: Get-Duration" -D /dev/stdout -o /dev/null http://www.yoursite.ca | awk '/^Duration: / {print $2}'

Se o seu sistema retornar o valor de Duração correto para renderizar a página quando você fizer apenas uma solicitação HEAD, simplifique:

curl -s -H "Client: Get-Duration" -I http://www.yoursite.ca | awk '/^Duration: / {print $2}'
    
por 24.09.2009 / 14:20
0

Acho que algo assim funcionaria:

#!/bin/sh
timeout=10
tracefile=/tmp/.telnettrace
HOST=$1

telnet_commands() {
   tout=${timeout}
   echo open $1 80

   sleep 1

   while [ "$tout" -ge 0 ]
   do
      if tail -1 $tracefile 2>/dev/null | grep "character" > /dev/null
      then
         echo "GET /index.html HTTP/1.1 Host: myhost.com Client: Get-Duration\n"
         tout=-15
         continue
      else
         sleep 1
         tout=$[$tout-1]
      fi
   done
   tout=${timeout}
   while [ "$tout" -ge 0 ]
   do
      if tail -1 $tracefile 2>/dev/null | grep  "^$" > /dev/null
      then
         tout=-15
         continue
      else
         sleep 1
         tout=$[$tout-1]
      fi
   done
}

telnet_commands $HOST | telnet |tee $tracefile
    
por 24.09.2009 / 13:28