OpenSSL配置最大连接数

dje*_*lin 8 c c++ openssl

我的应用程序在内部进行segfault之前保持950-970个SSL连接SSL_read.是否可以将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));
Run Code Online (Sandbox Code Playgroud)

此外,我已经确定这不是ssl_read函数内部的segfaulting (应该指向ssl3_read).成员ssl_read的method实际上是无效的本身和它出现method本身也是无效的(我的基础上推断这个"奇怪的看的地址.")

Thi*_*elo 4

恕我直言,看来你已经达到了某种极限。正如你所说,文件描述符的数量是可以的。因此,您可以尝试使用 增加堆栈大小ulimit。例如:

ulimit -s 32768
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用valgrind这样的工具来帮助您找出应用程序出现段错误时到底发生了什么。

希望能帮助到你。