Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Limit für Redis-Verbindung/Puffergröße überschritten

Ich konnte das gleiche Problem der Überschreitung der Puffergröße mit ServiceStack duplizieren. Der Code für die Belastungstests ist hier – führen Sie 20 Instanzen der Anwendung für mindestens 20 Minuten aus. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

Der erste Fehler, den Sie möglicherweise sehen, ist „Konnte keine Verbindung zur Redis-Instanz herstellen“, wie von Redis kann keine Verbindung in ausgelasteter Last herstellen, aber wenn Sie die innere Ausnahme erweitern, sehen Sie „Eine Operation auf einem Socket konnte nicht durchgeführt werden, da dem System nicht genügend Puffer Speicherplatz oder weil eine Warteschlange voll war"

Mein Problem trat auf Windows7 auf, aber nicht auf Windows Server 2008 rc. Also fange ich an zu schauen, ob es ein Betriebssystemproblem war. Nach einer E-Mail an Demis an ServiceStack wurde festgestellt, dass ServiceStack die Sockets korrekt schließt. Mit Blick auf das Betriebssystem wurde das Problem durch die Einstellung von TcpTimeWaitDelay und MaxUserPort behoben.

Weitere Referenzen. TcpTimeWaitDelay auf 45 Sekunden

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

Ich habe den Portbereich auf 1025-64511

angepasst