1) Es scheint ratsam, einen Anwendungspool pro Website zu haben. Gibt es irgendwelche Einschränkungen bei diesem Ansatz? Kann eine Anwendung beispielsweise die gesamte CPU, den Arbeitsspeicher usw. auslasten?
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.
2) Wann sollten Sie mehrere Worker-Prozesse in einem Anwendungspool zulassen? Wann solltest du nicht
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.
3) Kann ein privates Speicherlimit 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?
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.
4) Was ist der Unterschied zwischen privaten und virtuellen Speichergrenzen?
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/
5) Gibt es zwingende Gründe, einen Anwendungspool pro Site NICHT auszuführen?
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).