Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Limite de conexão/tamanho do buffer do Redis excedido


Consegui duplicar o mesmo problema de limite de tamanho do buffer excedido usando o ServiceStack. O código para fazer o teste de estresse está aqui - execute 20 instâncias do aplicativo por pelo menos 20 minutos. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

O primeiro erro que você pode ver é "Não foi possível conectar à instância redis", conforme descrito por Redis incapaz de conectar em carga ocupada, mas se você expandir a exceção interna, verá "Uma operação em um soquete não pôde ser executada porque o sistema não tinha buffer suficiente espaço ou porque uma fila estava cheia"

Meu problema ocorreu no Window7, mas não no Window Server 2008 rc. Então eu começo a olhar se era um problema do sistema operacional. Depois de enviar um e-mail para Demis no ServiceStack, concluiu-se que o ServiceStack estava fechando os soquetes corretamente. Olhando para o sistema operacional, o problema foi corrigido com a configuração de TcpTimeWaitDelay e MaxUserPort.

Mais referências. TcpTimeWaitDelay para 45 segundos

e MaxUserPorthttp://mashijie.blogspot.com/2009/05/change-default-setting-of-tcp-ports.html

Eu ajustei o intervalo de portas para 1025-64511