Hier sind die Dinge, die ich denken kann: - Sitzungsgröße. - Thread-Pools - die Anzahl der gleichzeitigen Threads zum Server. Dies kann vom Anwendungsserver konfiguriert werden. Es gibt mehrere verfügbare Thread-Pools für den JBoss. Sie haben beispielsweise mehrere Pools für den Servlet-Container, die für den EJB-Container getrennt sind. Sie können hier einige Details lesen. https://developer.jboss.org/wiki/ThreadPoolConfiguration#jive_content_id_Deploying_Threading_Components - Ihr Anwendungsfall. Wie viele gleichzeitige Benutzer erwarten Sie?
Wenn Sie keine Threads mehr haben, werden alle weiteren Anfragen in die Warteschlange gestellt (ich denke, das hängt ein wenig vom Executor ab), aber im allgemeinen Fall ist es so. Dies belastet den Speicher. Sie sollten also nicht oberhalb der maximalen Poolgröße arbeiten.
Die Größe der Sitzung und die Anzahl der gleichzeitigen Benutzer, die Sie erwarten, werden Ihnen helfen herauszufinden, wie Ihr Speicher im Laufe der Zeit wächst. Sie sollten Pick-Stunden berücksichtigen und wie die Website-Nutzung in den letzten Jahren gewachsen ist.
Hier sollte beachtet werden, dass, da Sie Online-Anwendung haben Sie wegen des Garbage Collector lieber kleine HEAP-Größe über große Heap-Größe bevorzugen sollten. Wahrscheinlich ist es eine gute Idee, den neuen G1 Garbage Collector zu verwenden.
bearbeiten basierend auf letzten Kommentar: Ein naive Art und Weise den Haufen ohne sehr starke Präzision mit Hilfe von Profiler zu messen ist: 1. Starten Sie Server, einen Testlauf mit einzelnen Benutzern, um alle Klassen zu initialisieren machen . 2. Erzwingen Sie die Garbadge-Sammlung und nehmen Sie einen Benchmark. 3. Führen Sie eine große Stichprobe von parallelen Benutzern aus und beobachten Sie, wie viel der GC freigibt (den GC erneut erzwingen), wenn Ihr Auswahlspeicher erreicht ist.
Nun ist dies ein naives Vorgehen.
Ein komplexerer Ansatz wäre, die Größe der Sitzung mit Hilfe eines Objektzuweisungsüberwachungstools zu berechnen (Profiler erneut verwenden).
Gibt es einen Weg in Java, um herauszufinden, was die Sitzungsgröße ist? – Cdesai
Ja, es ist nicht sehr schwierig. Rüsten Sie sich einfach mit einem guten Profiler wie Yourkit aus und Sie können die Größe eines beliebigen Objekts messen. Wenn Sie ein kostenloses benötigen, wird VisualVM wahrscheinlich den Trick machen. Die Hauptfrage ist wiederum, wie genau Sie sein möchten. –