由于系统缓冲区空间不足或队列已满,无法执行套接字上的操作

由于系统缓冲区空间不足或队列已满,无法执行套接字上的操作

我有一台机器运行多个应用程序,这些应用程序不断执行 UNC 访问 ( \\server-ip\share)。几天后,所有 UNC 都无法从这台机器访问。

  • 当终止应用程序时,UNC 可以再次访问
  • 重新启动进程时,UNC 立即不再可访问
  • 重启机器解决了几天的问题

可能有端口耗尽但未netstat显示过多连接或挂起连接,任务管理器性能选项卡未显示异常数字。TcpQry 显示正常的 TCP/UDP 映射数字。

  • 问题发生时数据包捕获显示没有请求(请求未到达网络加强端口耗尽假设)。
  • 事件查看器未显示任何内容
  • 进行了以下注册表更改,尽管这可能只是延迟问题而不能消除它,但无论如何它没有帮助:

    autodisconnect在 中找到值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters。如果不存在,请创建一个REG_DWORD名为 的新值autodisconnect。将值编辑为十六进制并将其设置为ffffffff

    KeepConn在 中查找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters。如果不存在,则将其创建为REG_DWORD值并为其分配值 65534。

    查找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters并创建一个DWORD名为 的新值MaxUserPort。将值设置为 65534。

我的问题是:

  • 如何识别队列或缓冲区空间耗尽?
  • 如果 UNC 的行动确实耗尽了资源,那么有没有不会耗尽资源的替代方案或者有没有什么办法可以释放资源?

相关内容