Frage

Ich verstehe, dass die Antwort auf diese Frage auf Registry-Einstellungen und auf der Version von Windows abhängen kann, und vielleicht auf die Menge an RAM, wenn nicht genügend Speicher vorhanden ist. Für die Zwecke dieser Frage, setzen voraus, dass der Server viel RAM hat (3+ GiB).

Wenn eine Anwendung (3rd-Party-Anwendung in diesem Fall) Griffe bei einigen hundert pro Stunde Lecks, wie viele Gesamt Griffe kann, dass die Anwendung Leck vor anderen Anwendungen wird in Schwierigkeiten laufen? Mit „troubles“ ich meine, zum Beispiel, nicht einen Thread zu starten, fehlschlagen, eine Datei zu öffnen, und so weiter.

Ich habe einige Server gesehen (leicht belastet) mit einem Prozess nur gut laufen (in der Regel eine Datenbank-Prozess) ein paar Zehntausende von Griffen, so die alte 10000 Griff Grenze hier eindeutig nicht das Problem ist. (Und das war eine Pro-Prozess-Grenze sowieso, so wäre nicht meine Anwendung auswirken, die gut unter diesem Punkt ist.)

Kann entweder jemand die Frage beantworten oder an einigen Ressourcen zeigen Sie mir, das zu erklären, wie viele Gesamt behandeln ein Windows-Server ermöglicht, bevor Sie effektiv (von Griffen oder anderen Systemressourcen) leer?

War es hilfreich?

Lösung

Siehe Raymond Chen Beitrag auf dieses Thema . Der Fenstermanager erzwingt ein Limit von 10K pro Prozess und hat eine Grenze von 32 KB über das System. Also, wenn es „nur“ 100 Griffe pro Stunde leckt, dann haben Sie ein paar Tage uptime, bevor es misbehaving beginnt.

Beachten Sie, dass nicht alle Griffe gleich sind. Fenstergriffe sind nicht Griffe DB, zum Beispiel, und können unterschiedliche Regeln folgen. So könnte diese Einschränkung nicht, je nachdem, welche Art von Griffen des Programm ist undicht. Auch diese Blog-Post lesen.

Andere Tipps

Die Desktopheaps , das ist ein Pool von Speichern, in dem die eigentlichen „Sachen“ der Griff darstellt Leben. Es ist manchmal nicht so sehr, wie viele Griffe Sie zugewiesen haben, aber wie viel Speicher jedes Objekt unter das Handle verwendet, ist Sie den Heap debuggen können auf diese Weise . Es ist ein Schmerz zu installieren.

(dies von einem anderen meiner Antworten zurückgeführt wurde)

Da diese Werte mit neuen Windows-Versionen ändern können, können Sie das Sysinternals-Tool TestLimit / TestLimit64 verwenden, um eine grobe Schätzung zu erhalten. Die x64-Version für eine Weile laufen kann, vor allem für den Speichertest (es könnte die Festplatte (Swap-Datei verwenden) mehr virtuellen Speicher zu bekommen).

Holen Sie sich die Werkzeuge von http://live.sysinternals.com/WindowsInternals/ oder http://download.sysinternals.com/files/TestLimit.zip

Kommandozeilen-Optionen:

-p check process limit
-t check thread limit
-h check handle limit
-u check user handle limit

Nach dieser , 10000.

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