2012-03-27 3 views
0

Ich bin ein wenig verwirrt bei der Speicherbenutzung meines WCF-Dienstes. Kurzer Überblick, mein WCF-Service ist ein odata providor, der meiner iPad-Anwendung ermöglicht, mit unserer SQL Server-Datenbank zu sprechen.WCF Odata Service w3wp Prozess Speicher Creap

Das Problem ist, dass, wenn ein Client (ipad-Gerät mit objective c odata Bibliothek) für eine einfache Reihe von Daten (sagen wir alle Kunden aus der Datenbank) der Speicher des w3wp Prozess geht um ein paar MB, und kommt nie wirklich runter. Da der Client nur einmalige Aufrufe ausführen möchte (einen Datensatz abrufen, einen Datensatz aktualisieren, einen Datensatz löschen), muss der Speicher, den er für die Aktion verwendet hat, aufgegeben werden. Dies ist überhaupt nicht der Fall? Ich nehme an, es gibt etwas Caching passiert oder vielleicht wird die rufende Instanz nicht entsorgt.

Kann mich jemand in die richtige Richtung lenken, so dass der w3wp mager ist und die Erinnerung wegbrennt, nachdem der Anruf beendet wurde.

Vielen Dank im Voraus

+0

Wie bei jeder verwalteten Anwendung wird der Prozess nicht sehr aggressiv sein, um Arbeitsspeicher freizugeben, wenn die Maschine nicht unter Arbeitsspeicherbelastung steht. Es muss nicht sein. Wie misst man den Speicherverbrauch? –

Antwort

0

hat Sie Datenbank auf demselben Rechner wie Ihren Web-Server gespeichert? Wenn Ihre Indizes nicht richtig angewendet werden, verbrauchen Sie sehr viel Ressourcen. Wenn Sie MS SQL Server verwenden, überprüfen Sie die Mindestspeichereinstellung für den Server. Sobald der minimale Speichergrenzwert erreicht ist, wird MS SQL Server ihn wahrscheinlich erst wieder freigeben. Sie sollten sich auch Ihre verbindliche Konfiguration ansehen. Wenn Sie eine vollständige Bindung (Sitzung) verwenden und die Sitzung nicht schließen, bleibt die Dienstinstanz für 10 Minuten im Arbeitsspeicher (Standard) und wartet auf neue Clientanforderungen vom selben Proxyobjekt.

+0

Hallo dotnetPr0, Danke für Ihre Antwort. Ich bin glücklich mit dem SQL Server Speicherverbrauch, dies ist getrennt von der w3wp Speicherverbrauch. Ich habe keine Änderungen mit dem Zustand der vollständigen Bindung vorgenommen, damit ich das untersuchen kann. Vielen Dank – Matt