We are having some difficulties when using Stunnel under load.
The maximum sessions running on a Windows servers seems to be set at 935 concurrent connections.
Our system uses Stunnel to route incoming SSL traffic on port 443 through Openssl to a Java application on port 26789. Both Stunnel and the Java server run on a Windows 2003 server, with between 4GB and 8GB of ram, both running Dual Intel Zeon 2Ghz processors. The problem is that when the Stunnel server is under load, the maximum connections that we can achieve is 935 concurrent connections (Windows threads between 936 and 938), before Stunnel throws errors and starts closing the connections. Here is some additional information about our system:
Stunnel version 4.21 (latest Windows binaries)
OpenSSL 0.9.8g
Stunnel Config:
-----------------------------------------------------------------------
debug = 7
output = stunnel.log
# Use it for client mode
#client = yes
#TIMEOUTidle = 60
socket = a:TCP_NODELAY=1
socket = a:SO_LINGER=a:0
socket = r:TCP_NODELAY=1
socket = r:SO_LINGER=r:0
socket = l:TCP_NODELAY=1
socket = l:SO_LINGER=l:0
# Service-level configuration
[JAVASERVER]
#session = 5000
accept = 443
connect = localhost: 26789
# delay = yes
#transparent = yes
-----------------------------------------------------------------------
We have tried various options, such as the TIMEOUTidle and session parameters for Stunnel, but with no luck. We have even tried running Stunnel separately on a Linux distro (FC4), with even less positive results.
The pertinent errors in the log files are as follows: Connection closed: 178664 bytes sent to SSL, 44646 bytes sent to socket
SSL alert (write): warning: close notify _beginthread: Exec format error (8)
Connection rejected: create_client failed
I can mail full logs of our load tests as well.
Our server will be expected to handle upwards of 10000 connections at a time, we've been researching for about a week now how to get the performance we need, but so far nothing.
Iain