Apache Bench: Kegagalan handshake SSL terkait langsung dengan level concurrency

12

Saya menjalankan beberapa tes pada ab dan ketika saya menggunakan tingkat concurrency lebih dari 155 saya mendapatkan yang berikut:

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

Permintaan masih berhasil:

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

Saya telah mengujinya berkali-kali dan jabat tangan SSL hanya gagal setelah konkurensi melebihi 155. Adakah yang bisa menjelaskan kepada saya bagaimana mereka bisa berhubungan langsung?

C_B
sumber

Jawaban:

8

Jabat tangan SSL bisa gagal ketika koneksi secara umum gagal atau terputus, serta karena kesalahan SSL. Ini juga bisa gagal jika habis karena kurangnya entropi yang tersedia.

Kemungkinannya adalah Anda hanya memalu server terlalu keras. Tidak ada cukup informasi di sini untuk menentukan apa yang sebenarnya gagal.

Definisi kesuksesan dalam tes ini aneh dan mencurigakan. Namun, jika memori berfungsi, kode kesalahan 5 menunjukkan bahwa soket ditutup. Mungkin koneksi dinilai sukses setelah negosiasi SSL dimulai, bukan setelah berhasil?

Falcon Momot
sumber
1
Kesalahan 5 (seharusnya) menjadi kesalahan IO. Tapi soket openssl biasanya dibangun di atas soket normal, jadi aku tidak tahu apa yang benar-benar berarti. Soket yang normal tidak menghasilkan kesalahan IO.
Matthew Ife
Mereka lakukan ketika mereka ditutup dari jarak jauh, bukan?
Falcon Momot
Tidak, tulisan akan menghasilkan EPIPE dan pembacaan akan menghasilkan 0 byte.
Matthew Ife
Saya juga tidak yakin ini adalah kode kesalahan yang berada di domain yang sama dengan yang dapat diteruskan ke strerror (), tapi saya benar-benar tidak tahu karena saya belum melihat sumbernya.
Falcon Momot