ein High-End-Server mit einem Application Server oder mehrere Anwendungsserver?

StackOverflow https://stackoverflow.com/questions/2543578

  •  23-09-2019
  •  | 
  •  

Frage

Wenn ich ein High-End-Server, zum Beispiel mit 1T Speicher und CPU 8x4core ...

wird es mehr Leistung bringen, wenn ich mehrere App-Server (auf verschiedenen JVM) laufen und nicht nur eine App Server?

Auf App Server Ich werde einige Dienste (EAR WHITH Nachricht Driven Beans) laufen, die den Austausch Nachricht miteinander.

btw, hat Java 64bit jetzt keine Speicherbegrenzung mehr any? http://java.sun.com/products/hotspot/whitepaper.html# 64

War es hilfreich?

Lösung

  

wird es mehr Leistung bringen, wenn ich mehrere App-Server (auf verschiedenen JVM) laufen und nicht nur eine App Server?

Es gibt mehrere Dinge zu berücksichtigen:

  • Eine einzelne App-Server bedeutet einen Single Point of Failure. Für viele Anwendungen ist dies keine Option und mit horizontaler und vertikaler Skalierung ist eine gemeinsame Konfiguration (das heißt mehrere VMs pro Maschine und mehr Maschinen). Mehr Maschinen hinzuzufügen, ist natürlich einfacher / billiger, wenn sie klein sind.

  • Ein großer Haufen dauert länger zu füllen, so die Anwendung läuft länger, bevor eine Garbage Collection stattfindet. Aber auch ein größerer Haufen dauert länger kompakt und bewirkt, dass die Garbage Collection länger dauern. Bemessen der VM in der Regel Mittel einen guten Kompromiss zwischen Häufigkeit und Dauer der Suche nach (in anderen Worten, wollen Sie nicht immer so viel RAM wie möglich geben, um eine VM)

Also, meine Erfahrung, mehrere JVM mehr Maschinen läuft Hosting ist die übliche Wahl (und ist in der Regel billiger als ein riesiges Tier und gibt Ihnen mehr Flexibilität).

Andere Tipps

Es gibt automatisch eine Performance-Einbußen, wenn Sie brauchen Kommunikation zu tun, out-of-Prozess, also die Frage, ob der Anwendungsserver nicht gut genug skaliert so dass dieses auszahlen kann.

Als Faustregel das JVM-Design ermöglicht die Verwendung einer beliebigen Anzahl von CPUs und jede Menge RAM das Betriebssystem zur Verfügung stellt. Die tatsächlichen Grenzen sind JVM Implementierung spezifisch, und Sie müssen sehr sorgfältig die technischen Daten lesen, bevor zu sehen, die Wahl, wenn es irgendwelche Grenzen für Sie relevant ist.

Da Sie eine JVM haben, die die Hardware nutzen können, müssen Sie dann einen App-Server, der in geeigneter Weise skaliert werden kann. Ein gemeinsamer Engpass in diesen Tagen ist die Menge der Web-Anfragen, die pro Sekunde verarbeitet werden können - ein moderner Server in der Lage sein sollte, 10000 Anfragen pro Sekunde (siehe http://www.kegel.com/c10k.html ), aber nicht alle tun.

Also, zunächst einmal identifiziert Ihre dringendsten Bedürfnisse (Verbindungen pro Sekunde? Speichernutzung? Netzwerk-Bandbreite?) Und die Nutzung, dass die beste Plattform + Jvm + app Server-Kombination zu identifizieren. Wenn Sie konkreten Bedarf haben, werden Anbieter in der Regel glücklich, Sie zu unterstützen, um einen Verkauf zu machen.

Die meisten wahrscheinlich, dass Sie, indem Sie auf mehrere JVMs mit kleineren Haufen anstelle eines einzelnen großen JVM gewinnen. Es gibt ein paar Gründe:

  1. Kleinere Haufen bedeuten kürzerer Müll Sammlungen

  2. Mehr JVMs Mittel weniger Wettbewerb für interne Ressourcen innerhalb JVM wie Thread-Pools und anderer synchronisierten Zugriff.

Wie viele JVMs Sie in diese Box passen sollte, hängt von der Anwendung der Fall ist. Der beste Weg, dies zu bestimmen, ist eine Belastungstest einrichten , die Produktionslast simuliert und beobachten, wie sich die Anzahl der Anforderungen kann das System Griff mit der Anzahl der hinzugefügten JVMs wächst. Irgendwann werden Sie sehen, dass mehr JVMs Zugabe Durchsatz nicht verbessert. Das ist, wo Sie sollten aufhören.

Und doch gibt es eine weitere Überlegung. Es ist besser, hat mehr physischen Maschinen , anstatt eine einzige große Fett-Box. Dies ist die Zuverlässigkeit. Sollte dieses Feld aus irgendeinem Grunde offline geht, wird es mit ihm all App-Server übernehmen, die darin ausgeführt werden. Die Infrastruktur viele einzelne kleinere physikalische Maschinen ausgeführt wird weniger durch den Ausfall einer einzelnen Maschine betroffen sein, im Vergleich zu einer einzigen Box.

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