Apache Bench: falha do handshake SSL diretamente relacionada ao nível de simultaneidade

12

Fiz alguns testes em ab e, quando uso um nível de simultaneidade superior a 155, obtenho o seguinte:

SSL handshake failed (5).
SSL handshake failed (5).
SSL handshake failed (5).
SSL handshake failed (5).
SSL handshake failed (5).
SSL handshake failed (5).
SSL handshake failed (5).
SSL handshake failed (5).
SSL handshake failed (5).
Completed 100 requests
Completed 200 requests
Finished 200 requests

As solicitações ainda são bem-sucedidas:

Concurrency Level:      200
Time taken for tests:   14.481 seconds  
Complete requests:      200
Failed requests:        0

Eu testei várias vezes e o handshake SSL só falha quando a concorrência excede 155. Alguém pode me explicar como eles podem estar diretamente relacionados?

C_B
fonte

Respostas:

8

O handshake SSL pode falhar quando a conexão geralmente falha ou é interrompida, bem como devido a erros SSL. Também pode falhar se atingir o tempo limite devido à falta de entropia disponível.

Provavelmente, você está martelando o servidor com muita força. Não há informações suficientes aqui para determinar o que exatamente está falhando.

A definição de sucesso neste teste é estranha e suspeita. No entanto, se a memória servir, o código de erro 5 indica que o soquete está fechado. Talvez a conexão seja considerada um sucesso depois que a negociação SSL for iniciada, e não depois que ela for bem-sucedida.

Falcon Momot
fonte
1
Erro 5 (deve) ser erro de E / S. Mas os soquetes openssl geralmente são construídos sobre soquetes normais, então não faço ideia do que isso realmente significa. Soquetes normais não produzem erros de E / S.
Matthew Ife
Eles fazem quando estão fechados remotamente, não?
Falcon Momot
Não, uma gravação produzirá EPIPE e uma leitura retornará 0 bytes.
Matthew Ife
Também não tenho certeza se este é um código de erro que está no mesmo domínio daqueles que podem ser passados ​​para strerror (), mas eu realmente não sei, pois não procurei na fonte.
Falcon Momot