Apache Bench: SSL handshake ล้มเหลวที่เกี่ยวข้องโดยตรงกับระดับการทำงานพร้อมกัน


12

ฉันรันการทดสอบบางอย่างเกี่ยวกับ ab และเมื่อฉันใช้ระดับการทำงานพร้อมกันที่มากกว่า 155 ฉันจะได้รับสิ่งต่อไปนี้:

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

คำขอยังคงสำเร็จ:

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

ฉันได้ทำการทดสอบหลายครั้งและการจับมือ SSL ล้มเหลวก็ต่อเมื่อมีการเกิดขึ้นพร้อมกันมากกว่า 155 ใครสามารถอธิบายให้ฉันรู้ว่าพวกเขาจะเกี่ยวข้องกันโดยตรงได้อย่างไร

คำตอบ:


9

การจับมือ SSL สามารถล้มเหลวเมื่อการเชื่อมต่อโดยทั่วไปล้มเหลวหรือถูกขัดจังหวะรวมทั้งเนื่องจากข้อผิดพลาด SSL นอกจากนี้ยังสามารถล้มเหลวได้หากหมดเวลาเนื่องจากการขาดเอนโทรปีที่มีอยู่

โอกาสที่คุณจะตอกย้ำเซิร์ฟเวอร์นั้นแรงเกินไป มีข้อมูลไม่เพียงพอที่นี่เพื่อกำหนดสิ่งที่ล้มเหลวอย่างแม่นยำ

คำนิยามของความสำเร็จในการทดสอบนี้แปลกและสงสัย อย่างไรก็ตามหากหน่วยความจำทำหน้าที่รหัสข้อผิดพลาด 5 ระบุว่าซ็อกเก็ตถูกปิด บางทีการเชื่อมต่ออาจถูกตัดสินว่าประสบความสำเร็จเมื่อการเจรจา SSL เริ่มขึ้นแทนที่จะเป็นหลังจากที่สำเร็จหรือไม่


1
ข้อผิดพลาด 5 (ควร) เป็นข้อผิดพลาดของ IO แต่โดยทั่วไปแล้ว openssl sockets จะถูกสร้างขึ้นบนซ็อกเก็ตทั่วไปดังนั้นฉันจึงไม่รู้เลยว่ามันแปลว่าอะไร ซ็อกเก็ตปกติไม่สร้างข้อผิดพลาด IO
Matthew Ife

พวกเขาทำเมื่อพวกเขาปิดระยะไกลพวกเขาไม่?
Falcon Momot

ไม่การเขียนจะสร้าง EPIPE และการอ่านจะส่งกลับ 0 ไบต์
Matthew Ife

ฉันยังไม่แน่ใจว่านี่เป็นรหัสข้อผิดพลาดซึ่งอยู่ในโดเมนเดียวกับรหัสที่สามารถส่งไปยัง strerror () แต่ฉันไม่รู้จริงๆเพราะฉันไม่ได้ดูที่แหล่งที่มา
Falcon Momot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.