2017-05-29 2 views
0

Wir fügen Redis-Cache in unsere SaaS-Anwendung in Azure ein.Redis-Cache-Fehler mit Azure

Aber wir einige Probleme haben, sehen wir diese Art von Fehler von Zeit zu Zeit

Timeout performing EVAL, inst: 2, queue: 23, qu: 0, qs: 23, qc: 0, wr: 0, wq: 0, in: 65536, ar: 0, 
IOCP: (Busy=1,Free=999,Min=1,Max=1000), WORKER: (Busy=2,Free=8189,Min=1,Max=8191) 

Timeout performing EVAL, inst: 2, queue: 3, qu: 0, qs: 3, qc: 0, wr: 0, wq: 0, in: 65536, ar: 0, 
IOCP: (Busy=1,Free=999,Min=1,Max=1000), WORKER: (Busy=3,Free=8188,Min=1,Max=8191) 

Wenn diese Protokolle zu interpretieren versucht, ich habe eine harte Zeit zu wissen, wo zu beginnen, wo sie suchen müssen und ziehen Schlussfolgerungen.

Bitte, kann mir jemand etwas über diese speziellen Werte sagen? Die Redis-Instanz befindet sich in der gleichen Zone wie der Server, ich verwende den c1-Plan mit 1 GB Speicher, aber diese Fehler kommen durch einfache Tests zustande.

Die Einstellungen sind:

ConnectionTimeoutInMilliseconds = "2000" operationTimeoutInMilliseconds = "1500" retryTimeoutInMilliseconds = "4500" 

In dem redis Armaturenbretter in Azure ich sehe keine Speicher Spikes, Verbindungen oder irgendetwas anderes, soll ich zu einem bestimmten Wert aus?

Antwort

0

Der Wert "in: 65536" im Timeout ist sehr hoch. Dieser Wert gibt an, wie viele Daten im Socket-Kernel-Puffer des Client gespeichert sind. Dies zeigt an, dass die Daten auf dem lokalen Computer angekommen sind, aber nicht von der Anwendungsschicht gelesen wurden. Dies tritt typischerweise auf, wenn 1) Thread-Pool-Einstellungen angepasst werden müssen oder 2) wenn die Client-CPU hoch läuft.

IOCP: (Besetzt = 1, Frei = 999, Min = 1, Max = 1000), WORKER: (Besetzt = 2, Frei = 8189, Min = 1, Max = 8191) und IOCP: (Besetzt = 1 , Free = 999, Min = 1, Max = 1000), WORKER: (Beschäftigt = 3, Free = 8188, Min = 1, Max = 8191) zeigen an, dass Sie Threadpool-Wachstumsdrosselungsprobleme treffen. Vielleicht möchten Sie die Erklärungen und Empfehlungen hier einsehen: https://gist.github.com/JonCole/e65411214030f0d823cb#file-threadpool-md.

+0

Danke für Ihre Antwort. Ich habe das Threadpool-Wachstum konfiguriert. Aber leider hat es bei mir nicht funktioniert. Eines der Probleme, die ich festgestellt habe, ist, dass bei der Verwendung von ReportViewer zum Rendern von Berichten sehr komplexe Objekte erstellt werden. – Jsanchez

+0

Wenn Sie sagen "es hat nicht funktioniert", welche Fehler erhalten Sie jetzt? –

+0

Derselbe Fehler wie oben beschrieben. Ich habe versucht, eine Lösung zu entwickeln, lösche die Schlüssel von ReportViewer jedes Mal, wenn ich ein neues rendere. Es scheint jetzt zu funktionieren. Ich habe versucht, den threadPool zu konfigurieren, aber ich weiß nicht, wie es geht, wenn es von einem SessionStateProvider in einer web.config konfiguriert wird Vielen Dank für Ihre Antwort. – Jsanchez

Verwandte Themen