Redis
 sql >> Database >  >> NoSQL >> Redis

Limite di connessione Redis/dimensione del buffer superato

Sono stato in grado di duplicare lo stesso problema del limite di dimensione del buffer superato utilizzando ServiceStack. Il codice per eseguire lo stress test è qui:esegui 20 istanze dell'applicazione per almeno 20 minuti. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

Il primo errore che potresti vedere è "Impossibile connettersi all'istanza redis" come descritto da Redis non è in grado di connettersi in un carico occupato, ma se espandi l'eccezione interna vedrai "Impossibile eseguire un'operazione su un socket perché il sistema non disponeva di buffer sufficiente spazio o perché una coda era piena"

Il mio problema si è verificato su Window7, ma non su Windows Server 2008 rc. Quindi comincio a vedere se fosse un problema del sistema operativo. Dopo aver inviato un'e-mail a Demis a ServiceStack, si è concluso che ServiceStack stava chiudendo correttamente i socket. Guardando il sistema operativo, il problema è stato risolto con l'impostazione di TcpTimeWaitDelay e MaxUserPort.

Più riferimenti. TcpTimeWaitDelay a 45 secondi

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

Ho regolato l'intervallo di porte su 1025-64511