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を超えた場合にのみ失敗します。直接関係する方法を説明できる人はいますか?

回答:


8

SSLハンドシェークは、一般に接続が失敗するか中断される場合、およびSSLエラーが原因で失敗する場合があります。また、利用可能なエントロピーが不足しているためにタイムアウトした場合、失敗する可能性があります。

サーバーを強く叩きすぎている可能性があります。正確に何が失敗しているかを判断するための十分な情報がここにありません。

このテストの成功の定義は奇妙で疑わしいです。ただし、メモリが機能する場合、エラーコード5はソケットが閉じられていることを示します。おそらく、SSLネゴシエーションが開始された後ではなく、成功した後で接続が成功したと判断されますか?


1
エラー5(はずです)IOエラー。しかし、通常、opensslソケットは通常のソケットの上に構築されるため、それが実際に何を意味するのかわかりませ。通常のソケットはIOエラーを生成しません。
マシューイフェ

彼らはリモートで閉じているときにそうしますか?
ファルコンモモット

いいえ、書き込みはEPIPEを生成し、読み取りは0バイトを返します。
マシューイフェ

また、これがstrerror()に渡される可能性のあるものと同じドメインにあるエラーコードであるかどうかもわかりませんが、ソースを見ていなかったので、私は本当に知りません。
ファルコンモモット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.