我们正尝试使用Erlang定制应用程序(使用Erlang版本R15B)将大量文件从networking共享转移到Openstack。
在传输大约20k个文件之后,Erlang进程开始返回enobufs错误,导致它无法build立到OpenStack的HTTP连接。 同样,在同一个框上运行的C#代码不能再打开套接字,导致在这个问题中看到的错误缺乏足够的缓冲空间 。 closures所有自定义应用程序并重新启动不会缓解这种情况。
打开连接的数量从未超过300个连接,但通常包括TIME_WAIT时进入2k范围。 连接不开放,但正在迅速打开和closures。
我能find的所有文章似乎都提到了“短暂的”端口限制,但似乎并不像我们所能达到的那样,closuresErlang应用程序并没有带来任何改进。
有没有其他的东西可以缓冲空间,而不是正确地释放它?
应用程序的function之一是与本地服务通话。 看起来好像这触发了Server 2008中的内核套接字泄漏 ,它不会正确地释放套接字。 应用支持文章中提到的修复程序解决了问题。