Frage

Ich habe einen WCF-Dienst, der eine bestimmte Reaktionszeit (weniger als 1 Minute) erforderlich ist.

Mein Problem ist, dass jeder so oft, am häufigsten am Morgen des Dienst eine lange Zeit dauert, zu reagieren (manchmal mehr als 2 Minuten).

Ich denke, das ist, weil die App recycelt wird und der erste Lauf muss neu kompiliert werden.

Gibt es andere Gründe dies passieren könnte?

Ist es möglich, App Recycling deaktivieren? Und wenn ja, wird die Nebenwirkungen oder Instabilität verursachen? Ich gehe davon aus es muss ein Grund sein, warum asp.net apps gesetzt zu recyceln.

Gibt es noch etwas, das diese erste Lauf zur Verbesserung der Leistung kann getan werden?

War es hilfreich?

Lösung

Grundsätzlich sind die folgenden Regeln diktieren, wenn eine Anwendung recycelt oder entladen:

  1. Nach der App-Pool Recycle Zeit erreicht wurde -. Immer standardmäßig alle 29 Stunden Ich denke
  2. Eine festgelegte Zeit nach dem letzten Antrag auf Anwendung.

Mit einer Keep-Alive, um den Dienst ping würde lösen 2, und dann würde man nur mit 1 zu tun hat.

auf Ihrer Version von IIS abhängig, gibt es etwas andere Möglichkeiten, dies zu konfigurieren.

  1. Für IIS 6
  2. Für IIS 7

Die Leerlaufzeit heraus, dass ich denke, würde normalerweise auf „infinte“ Standard, kann aber durch die process~~POS=TRUNC Element (idleTimeout Attribut) Ihre Konfigurationsdateien.

Wie zum ersten Lauf Leistung - ohne die App zu suchen, es ist schwer zu sagen, Sie haben etwas laufen wie DotTrace oder ein anderer Profiler über das?

Sind Sie tun viel intensiver Lookups und Caching von Daten in dieser ersten Last? Können diese aufgeschoben werden?

Andere Tipps

Ja, Sie die AppPool aus Recycling verhindern können. Ein andere Möglichkeit wäre, einen Keep-Alive-Job zu erstellen, um ständig den Dienst ping den Arbeitsprozess zu halten vom Schlafen ab.

Performance-Probleme können durch etwas verursacht werden, haben Sie nicht zuerst ausgeschlossen. Da Sie etwas nicht ausgeschlossen haben, könnte es überhaupt von etwas cauased werden.

Vielleicht eine dumme Idee: Sie könnten eine Konsolenanwendung planen Ihren Dienst bei zum Beispiel treffen 5.30 am Morgen, so dass dieser Antrag eine lange Zeit kommen in zu laufen, und Ihre regelmäßigen Nutzer nach, dass dieses Problem nicht?

nehmen würde

Sicher - es ist nicht mit der Ursache zu tun, aber für den Augenblick, es könnte eine nützliche Abhilfe sein - no

Marc

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top