sql >> Database >  >> NoSQL >> Redis

Redis-verbinding/bufferlimiet overschreden

Ik was in staat om hetzelfde probleem van overschrijding van de buffergrootte te dupliceren met ServiceStack. De code om de stresstests uit te voeren is hier - voer 20 exemplaren van de applicatie uit gedurende ten minste 20 minuten. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

De eerste fout die u mogelijk ziet, is "Kan geen verbinding maken met redis-instantie" zoals beschreven door Redis kan geen verbinding maken bij drukke belasting, maar als u de innerlijke uitzondering uitbreidt, ziet u "Een bewerking op een socket kon niet worden uitgevoerd omdat het systeem onvoldoende buffer had ruimte of omdat een wachtrij vol was"

Mijn probleem deed zich voor op Window7, maar niet op Window Server 2008 rc. Dus ik begon te kijken of het een OS-probleem was. Na een e-mail te hebben gestuurd naar Demis bij ServiceStack, werd geconcludeerd dat ServiceStack de sockets correct sloot. Als we naar het besturingssysteem kijken, is het probleem opgelost door TcpTimeWaitDelay en MaxUserPort in te stellen.

Meer referenties. TcpTimeWaitDelay tot 45 seconden

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

Ik heb het poortbereik aangepast naar 1025-64511




  1. MongoDB Totale som van elke sleutel op een subdocument

  2. Wat is het verschil tussen Spring Data MongoDB en Hibernate OGM voor MongoDB?

  3. 5 manieren om rijen te selecteren met de minimumwaarde voor hun groep in SQL

  4. HDFS-gegevensblok - Leer de interne aspecten van Big Data Hadoop