OpenSSL配置最大连接数

时间:2012-06-13 19:35:16

标签: c++ c openssl

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

我已经将它编程为在获取它们之后不对连接做任何事情,所以我知道这是打开连接数的函数,而不是当前正在读/写的连接数或时间。

更新

  • 在同一个地方的ubuntu上出现同样的错误。我正在努力开发ubuntu。
  • 如果我在相同的连接数下将机器大小(RAM,交换,CPU)加倍,则会出现相同的错误。
  • 上下文不为空。
  • ulimit -n设置为4096.我已经通过设置ulimit -100验证了这一点,在这种情况下会发现不同的错误。
  • 即使汇集了线程,也会发生问题。无论是1个线程/连接还是1个线程/ 10个连接,问题都发生在相同数量的连接上。

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

有疑问

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

ssl_lib.c:968

968     return(s->method->ssl_read(s,buf,num));

此外,我已经确定这不是ssl_read函数中的segfaulting(它应该指向ssl3_read)。 ssl_read的成员method本身实际上无效,看起来method本身也无效(我在“看起来很奇怪的地址”的基础上推断这一点。)

1 个答案:

答案 0 :(得分:4)

恕我直言,好像你达到了一定的限度。如你所说,数字文件描述符是可以的。因此,您可以尝试使用ulimit增加堆栈大小。例如:

ulimit -s 32768

此外,您可以使用valgrind之类的工具来帮助您了解应用程序段错误时的实际情况。

希望它有所帮助。