Redis
 sql >> Base de données >  >> NoSQL >> Redis

Connexion Redis/limite de taille de tampon dépassée

J'ai pu dupliquer le même problème de limite de taille de tampon dépassée en utilisant ServiceStack. Le code pour effectuer les tests de résistance est ici - exécutez 20 instances de l'application pendant au moins 20 minutes. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

La première erreur que vous pouvez voir est "Impossible de se connecter à l'instance Redis" comme décrit par Redis incapable de se connecter en charge occupée, mais si vous développez l'exception interne, vous voyez "Une opération sur un socket n'a pas pu être effectuée car le système manquait de mémoire tampon suffisante ou parce qu'une file d'attente était pleine"

Mon problème est survenu sur Window7, mais pas sur Windows Server 2008 rc. J'ai donc commencé à regarder si c'était un problème de système d'exploitation. Après avoir envoyé un e-mail à Demis chez ServiceStack, il a été conclu que ServiceStack fermait correctement les sockets. En regardant le système d'exploitation, le problème a été résolu en définissant TcpTimeWaitDelay et MaxUserPort.

Plus de références. TcpTimeWaitDelay à 45 secondes

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

J'ai ajusté la plage de ports sur 1025-64511