2016-05-22 9 views

Antwort

1

Wenn Sie die Maschine nur für den Anwendungsserver verwenden, ist es normalerweise ein guter Ansatz, die doppelte Anzahl an Prozessorkernen in der Maschine zu verwenden und die CPU- und RAM-Auslastung schrittweise zu erhöhen, bis Sie eine optimale Anzahl gefunden haben.

Wenn es mehr Dienste in der gleichen Maschine (Memcached oder sogar Ihre Datenbank), mit weniger Prozesse starten, in der Regel die Anzahl der Kerne + 1.

Ich denke, der beste Ansatz ist, um die Ressource zu beobachten Verbrauch und erhöhen die Anzahl der Prozesse/Threads allmählich ... Viele Prozesse = hohe CPU-Wartezeiten. Wenige Prozesse = Leerlaufressourcen (Anfragen werden anstehen und warten)

+0

Dank Vitor Freitas, wissen Sie irgendeine Ressource, die speziell erklärt, wie Sie sie in AWS Elastic Beanstalk, Heroku und Microsoft Asure, ... setzen? – 1man

+2

Der Ansatz der Verwendung der doppelten Anzahl von Prozessorkernen ist nicht geeignet, wenn Prozesse Multithread sind. Wie Sie Prozesse gegen Threads ausbalancieren, hängt von den Besonderheiten der Anwendung ab und davon, ob es sich um CPU-gebundene E/A-Bindungen handelt. Das ist nicht unbedingt leicht zu erarbeiten und muss überwacht werden. Die alte mod_wsgi-Version, die AWS verwendet, verfügt nicht über die integrierte Überwachung, die dazu benötigt wird. Kurz gesagt gibt es keine einfache Antwort. –

+0

@Graham Simpleton, Sie haben mich immer fasziniert, wie schnell Sie Fragen beantworten. Bitte sagen Sie mir, ob es einen besseren Cloud-Service gibt oder ob es ein Dokument gibt, das Schritt für Schritt erklärt, wie man eine skalierbare Website mit mod_wsgi entwickelt. – 1man