OpenSSL 配置最大连接数

OpenSSL configure maximum number of connections

本文关键字:连接 配置 OpenSSL      更新时间:2023-10-16

我的应用程序在SSL_read内部出现段错误之前持有 950-970 个 SSL 连接。 是否可以将 OpenSSL 配置为接受比这更多的连接?

我已经将其编程为在获取连接后不对连接执行任何操作,因此我知道这是打开连接的#的函数,而不是当前读取/写入或时间的连接#的函数。

更新:

  • 在同一个地方的 ubuntu 上出现相同的错误。 我正在研究 ubuntu 向前发展。
  • 如果我在相同数量的连接下将计算机大小(RAM、交换、CPU)加倍,则会出现同样的错误。
  • 上下文不为空。
  • ulimit -n设置为 4096。 我已经通过设置ulimit -100来验证这一点,在这种情况下观察到不同的错误。
  • 即使线程已池化,也会出现问题。 无论有 1 个线程/连接还是 1 个线程/10 个连接,问题都会在相同数量的连接处发生。

我正在尝试在启用调试选项的情况下从源代码构建 OpenSSL。 我开始怀疑这是否需要几个小时或告诉我任何有用的东西。 我在这里有一个问题。

我已经确定段错误发生在openssl v 1.0.1.c中的这一行:

ssl_lib.c:968
968     return(s->method->ssl_read(s,buf,num));

此外,我已经确定这不是ssl_read函数内部的段错误(应该指向ssl3_read)。 method的成员ssl_read实际上本身是无效的,它本身似乎也是无效method(我是根据"奇怪的地址"推断的。

我直言,您似乎达到了某个极限。正如您所说,数字文件描述符是可以的。因此,您可以尝试使用 ulimit 增加堆栈大小。例如:

ulimit -s 32768

此外,您可以使用像valgrind这样的工具来帮助您找出应用程序段错误时真正发生的事情。

希望对您有所帮助。