Estou aprendendo por que a água é rápida.
Quando leio o ppt ou leio o "leia-me" do git, ele diz "rápido" porque é "Ao contrário da maioria dos analisadores, é sem estado e não aloca memória por si mesmo. Tudo o que faz é aceitar o ponteiro para o buffer e a estrutura de saída e configurações os ponteiros no último apontam para as partes necessárias do buffer. "
Eu não entendo o que isso significa. Eu ficaria muito grato se você explicar em detalhes.
Eu realmente apreciaria se você me avisasse.
Comando - siege -v -d1 -c250 -i -f siege.txt
Transações: 12.766 hits
Disponibilidade: 99,86%
Tempo decorrido: 35,62 segundos
Dados transferidos: 580,61 MB
Tempo de resposta: 0,67 segundos
Taxa de transação: 358,39 trans / s
Taxa de transferência: 16,30 MB / s
Simultaneidade: 240.01
Transações bem-sucedidas: 12766
Transações com falha: 18
Transação mais longa: 4,64
Transação mais curta: 0,00
Transações: 9.909 hits
Disponibilidade: 99,77%
Tempo decorrido: 34,35 segundos
Dados transferidos: 455,19 MB
Tempo de resposta: 0,84 segundos
Taxa de transação: 288,47 trans / s
Taxa de transferência: 13,25 MB / s
Simultaneidade: 242,80
Transações bem-sucedidas: 9905
Transações com falha: 23
Transação mais longa: 8,84
Transação mais curta: 0,00
Transações: 12145 hits
Disponibilidade: 99,44%
Tempo decorrido: 35,07 segundos
Dados transferidos: 635,66 MB
Tempo de resposta: 0,69 segundos
Taxa de transação: 346,31 trans / s
Taxa de transferência: 18,13 MB / s
Simultaneidade: 239,72
Transações bem-sucedidas: 11813
Transações com falha: 69
Transação mais longa: 1,97
Transação mais curta: 0,00
Quando leio o ppt ou leio o "leia-me" do git, ele diz "rápido" porque é "Ao contrário da maioria dos analisadores, é sem estado e não aloca memória por si mesmo. Tudo o que faz é aceitar o ponteiro para o buffer e a estrutura de saída e configurações os ponteiros no último apontam para as partes necessárias do buffer. "
Eu não entendo o que isso significa. Eu ficaria muito grato se você explicar em detalhes.
Isso significa que quando o H2O recebe uma solicitação, o próprio analisador HTTP não aloca nenhuma memória além da necessária para receber a solicitação. O analisador HTTP / 1 que H2O usa é picohttpparser, ele tem seu próprio repositório: https://github.com/h2o/picohttpparser . A fonte é pequena o suficiente e possui pequenos testes https://github.com/h2o/picohttpparser/blob/master/test.c que demonstram seu uso.
@sudarsha Estes são os resultados para HTTP / 2?
@ xm74 parece que não, porque _siege_ ainda não suporta HTTP / 2.
Siege não apóia isso. h2load tem, mas eu não tenho tempo para configurá-lo.
@deweerdt
Graças a isso, tive a chance de entender um pouco mais.
Muito obrigado.
Eu tenho uma pergunta.
Eu sei que "picoparser" é a função de analisar mensagens http.
Existe uma loja?
No ppt, é denominado buffer. Qual buffer é o buffer?
É um buffer no servidor web? É um buffer no picoparser?
E "sem estado" significa velocidade?
Explique em detalhes.
Eu não tenho inglês suficiente. Lamento se minha pergunta soou estranha.
Comentários muito úteis
meus resultados de benchmark seige em uma instância Uplcoud de 2 GB usando conexões LAN
Comando - siege -v -d1 -c250 -i -f siege.txt
siege.txt tem 65 urls (todos armazenados em cache e servidos pelo próprio servidor)
h2o
Transações: 12.766 hits
Disponibilidade: 99,86%
Tempo decorrido: 35,62 segundos
Dados transferidos: 580,61 MB
Tempo de resposta: 0,67 segundos
Taxa de transação: 358,39 trans / s
Taxa de transferência: 16,30 MB / s
Simultaneidade: 240.01
Transações bem-sucedidas: 12766
Transações com falha: 18
Transação mais longa: 4,64
Transação mais curta: 0,00
nginx
Transações: 9.909 hits
Disponibilidade: 99,77%
Tempo decorrido: 34,35 segundos
Dados transferidos: 455,19 MB
Tempo de resposta: 0,84 segundos
Taxa de transação: 288,47 trans / s
Taxa de transferência: 13,25 MB / s
Simultaneidade: 242,80
Transações bem-sucedidas: 9905
Transações com falha: 23
Transação mais longa: 8,84
Transação mais curta: 0,00
Caddy
Transações: 12145 hits
Disponibilidade: 99,44%
Tempo decorrido: 35,07 segundos
Dados transferidos: 635,66 MB
Tempo de resposta: 0,69 segundos
Taxa de transação: 346,31 trans / s
Taxa de transferência: 18,13 MB / s
Simultaneidade: 239,72
Transações bem-sucedidas: 11813
Transações com falha: 69
Transação mais longa: 1,97
Transação mais curta: 0,00