Wir sind dabei, eine Reihe von Sites auf einigen neuen Servern bereitzustellen. Ich habe folgende Fragen zu Anwendungspools:
Es scheint ratsam, einen Anwendungspool pro Website zu haben. Gibt es irgendwelche Einschränkungen bei diesem Ansatz? Verbraucht ein Anwendungspool die gesamte CPU, den Arbeitsspeicher usw.?
Wann sollten Sie mehrere Arbeitsprozesse in einem Anwendungspool zulassen? Wann solltest du nicht
Kann die Beschränkung des privaten Speichers verwendet werden, um zu verhindern, dass ein Anwendungspool einen anderen beeinträchtigt? Wird eine zu niedrige Einstellung dazu führen, dass gültige Anforderungen den Anwendungspool wiederverwenden, ohne eine gültige Antwort zu erhalten?
Was ist der Unterschied zwischen privaten und virtuellen Speicherbeschränkungen?
Gibt es zwingende Gründe, einen Anwendungspool pro Site NICHT auszuführen?
quelle
Antworten:
Dies ist ein ziemlich guter Ansatz. Es gibt keine guten Gründe, warum ich mir vorstellen kann, dass sich verschiedene "Sites" (Anwendungen) den gleichen Pool teilen. Es sei denn, sie müssen eine einzelne Ressource teilen. Eine Anwendung könnte theoretisch viel CPU oder Speicher beanspruchen, aber Änderungen an der Art und Weise, wie die Anwendungen gepoolt werden, wirken sich nicht wirklich so stark aus.
Dies lässt man am besten mit den Standardeinstellungen alleine. Wenn Sie nicht genau wissen, was Sie tun, kann sich dies negativ auf Ihre Website / Anwendung auswirken.
a) Theoretisch
b) Ja, eine niedrigere Einstellung kann negative Auswirkungen haben. Lassen Sie diese einfach in Ruhe, es sei denn, Sie haben spezielle Bedürfnisse und wissen, was Sie tun.
Das ist sehr kompliziert. Hier ist ein kurzer Beitrag, den ich gefunden habe und der helfen könnte: http://cybernetnews.com/cybernotes-windows-memory-usage-explained/
Wiederum kann ich nur daran denken, dass Sie, wenn es eine Art "gemeinsam genutzte Ressource" gibt, die von mehreren Anwendungen benötigt wird, diese im selben Prozess ausführen möchten.
Für Allzweckanwendungen und Websites ist IIS mit seinen Standardwerten ziemlich gut eingerichtet.
****AKTUALISIEREN****
In Bezug auf Ihre Anfrage nach zusätzlichen Informationen zu Nummer 2 sollten Sie dies nicht tun, es sei denn, Sie müssen dies ausdrücklich tun. Selbst bei Serveraktionen, die viel Zeit in Anspruch nehmen, werden Anforderungen über mehrere Threads bedient, und Sie möchten "Async Requests" (Asynchrone Anforderungen) verwenden, um lang laufende Aufgaben zu erledigen (wodurch ein Threadpool-Thread für die Bearbeitung anderer Anforderungen freigegeben wird). Realistisch kann ich mir keinen guten Grund vorstellen, mehrere Prozesse für einen einzelnen Pool zuzulassen.
Sobald Sie anfangen, über mehrere Prozesse zu sprechen, werden Sie möglicherweise auf Folgendes gestoßen: Den Sitzungsstatus zu verlieren, da eine Sitzung in Prozess 1 noch aktiv ist, die Anforderung jedoch von Prozess 2 verarbeitet wird Machen Sie eine prozessübergreifende Kommunikation, was sehr schmerzhaft ist.
Egal, was Sie in Bezug auf einen Grund für mehrere Prozesse mitbringen, ich würde wetten, dass es eine bessere Möglichkeit gibt, damit umzugehen (anstatt einen anderen Prozess auszulösen).
quelle
Ich konfiguriere immer einen dedizierten Anwendungspool für eine Website. In kostengünstigen Szenarien für das Hosting von Websites ist eine große Anzahl von Websites pro Anwendungspool sinnvoll.
Die Speichergrenzen sind eigentlich nur primitive Sicherheitsschwellen, um zu verhindern, dass ein Standort alle Systemressourcen verbraucht. Beachten Sie, dass dies unter Windows 2008 R2 x64 ein größeres Problem darstellt als unter IIS 6.0 x86, da x86-Anwendungen eine natürliche Speicherkapazität von 2 GB aufwiesen. Unter IIS 7.5 ist es für eine Anwendung mit einem Speicherverlust viel einfacher, große Mengen an Speicher zu verbrauchen.
Ich bin auch kein großer Fan von Recycling-Anwendungspools. Wenn ich einen Anwendungspool habe und die einzige Anwendung bin, die ausgeführt wird, und wenn an unserem Code nichts falsch ist, besteht wahrscheinlich keine Notwendigkeit, den Anwendungspool erneut zu recyceln. Und wenn ein Fehler in der Anwendung vorliegt, besteht die letztendlich geeignete Maßnahme darin, den Code zu reparieren.
quelle