Uma operação em um soquete não pôde ser executada porque o sistema não tinha espaço suficiente no buffer ou porque uma fila estava cheia

0

Eu tenho uma máquina rodando vários aplicativos que constantemente executam acesso UNC ( \server-ip\share ). Após vários dias, todos os UNC tornam-se não acessíveis a partir desta máquina.

  • Ao matar os aplicativos, o UNC está acessível novamente
  • Ao reiniciar os processos, o UNC não fica imediatamente acessível novamente
  • Reiniciar a máquina resolve o problema por vários dias

Provavelmente, há Exaustão de porta , mas netstat não revela muitas conexões ou conexões suspensas e a guia de desempenho do gerenciador de tarefas não mostra números anormais. TcpQry mostra números normais de mapeamento TCP / UDP.

  • A captura de pacotes mostra que não há solicitação quando o problema acontece (solicitação de não atingir a suposição de exaustão de porta de reforço da rede).
  • O visualizador de eventos não revela nada
  • Seguiu as alterações no registro, embora isso provavelmente apenas atrasasse o problema e não o eliminasse, mas, de qualquer forma, isso não ajudou:

    Encontre o valor autodisconnect em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters . Se não estiver lá, crie um novo REG_DWORD chamado autodisconnect . Edite o valor como Hexadecimal e configure-o para ffffffff .

    Encontre KeepConn em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters . Se não existir, crie-o como um valor REG_DWORD e atribua o valor 65534.

    Encontre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters e crie um novo valor DWORD chamado MaxUserPort . Configure o valor para 65534.

Minhas perguntas são:

  • Como identificar esgotamento de espaço de fila ou buffer?
  • Se, de fato, as ações da UNC esgotam recursos, existe uma alternativa que não existe ou existe uma maneira de liberar os recursos?
por grunt 08.05.2017 / 12:59

0 respostas