Apache Bench:SSL握手失败与并发级别直接相关


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时失败。有人可以向我解释它们如何直接相关吗?

Answers:


9

通常,当连接失败或中断以及SSL错误时,SSL握手可能会失败。如果由于缺少可用熵而超时,它也会失败。

您可能只是在用力锤击服务器。这里没有足够的信息来确定确切的失败原因。

在这个测试中成功的定义是奇怪而可疑的。但是,如果有内存可用,错误代码5表示套接字已关闭。也许一旦SSL协商开始而不是成功之后就判断连接成功?


1
错误5(应该)是IO错误。但是openssl套接字通常是在普通套接字之上构建的,因此我不知道这是什么意思。普通套接字不会产生IO错误。
马修·伊夫

他们在远程关闭时会这样做,不是吗?
Falcon Momot

不,写操作将产生EPIPE,读操作将返回0字节。
马修·伊夫

我也不确定这是一个错误代码,该错误代码与可以传递给strerror()的错误代码位于同一域中,但是我真的不知道,因为我没有看过源代码。
Falcon Momot 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.