Stanowisko Apache: niepowodzenie uzgadniania protokołu SSL bezpośrednio związane z poziomem współbieżności

12

Przeprowadziłem kilka testów na ab, a kiedy używam poziomu współbieżności powyżej 155, otrzymuję:

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

Żądania nadal się udają:

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

Testowałem to wiele razy i uzgadnianie SSL kończy się niepowodzeniem, gdy współbieżność przekroczy 155. Czy ktoś może mi wyjaśnić, w jaki sposób można je bezpośrednio powiązać?

C_B
źródło

Odpowiedzi:

9

Uzgadnianie SSL może się nie powieść, gdy połączenie ogólnie nie powiedzie się lub zostanie przerwane, a także z powodu błędów SSL. Może również zawieść, jeśli przekroczy limit czasu z powodu braku dostępnej entropii.

Możliwe, że po prostu zbyt mocno uderzasz serwer. Nie ma tutaj dość informacji, aby ustalić, co dokładnie zawodzi.

Definicja sukcesu w tym teście jest dziwna i podejrzana. Jeśli jednak pamięć służy, kod błędu 5 wskazuje, że gniazdo jest zamknięte. Być może połączenie zostanie uznane za sukces po rozpoczęciu negocjacji SSL, a nie po pomyślnym zakończeniu?

Falcon Momot
źródło
1
Błąd 5 (powinien) być błędem We / Wy. Ale gniazda openssl są zwykle zbudowane na zwykłych gniazdach, więc nie mam pojęcia, co to naprawdę oznacza. Normalne gniazda nie powodują błędów we / wy.
Matthew Ife,
Robią, kiedy są zdalnie zamknięte, prawda?
Falcon Momot,
Nie, zapis wygeneruje EPIPE, a odczyt zwróci 0 bajtów.
Matthew Ife,
Nie jestem też pewien, czy jest to kod błędu, który jest w tej samej domenie, co te, które można przekazać do strerror (), ale tak naprawdę nie wiem, ponieważ nie spojrzałem na źródło.
Falcon Momot,