/ / Tomcat - Skalierung auf einem einzelnen Server - Java, Tomcat, Amazon-Ec2

Tomcat - Skalierung auf einem einzelnen Server - Java, Tomcat, Amazon-EC2

Ich habe eine eingebettete Tomcat-Anwendungeine Amazon EC2-Instanz. Die Site verzeichnete einen Anstieg des Datenverkehrs, daher habe ich ein Upgrade auf eine viel größere Instanz durchgeführt. Bei gleichem Verkehrsaufkommen und einem viel größeren Server war die Verlangsamung jedoch noch vorhanden. Ich habe die maxThreads und die xmx / xms erhöht, aber das hat nicht viel gebracht.

Die verwendeten Serverressourcen sind sowohl auf dem Webserver als auch auf dem Datenbankserver (RDS) gering (weniger als 10% Arbeitsspeicher und weniger als 20% CPU).

Gibt es irgendetwas, das getan werden kann, um Tomcat zu beschleunigen? Oder sollte ich in die Kugel beißen und mehrere Tomcat-Instanzen und einen Load Balancer verwenden?

BEARBEITEN: Nur zur Verdeutlichung hat sich an der. Nichts geändertAnwendung, nur der Verkehr erhöht (fast verdoppelt). Meine Annahme war, dass eine (mehr als) Verdoppelung der Ressourcen (Webserver und Datenbank) angemessen sein sollte. Ich denke es ist nicht so einfach.

Antworten:

4 für die Antwort № 1

Es ist besser, dass Sie im Moment nichts tun. Sie wissen offensichtlich nicht, was die Anwendung tatsächlich verlangsamt. Deshalb waren Sie überrascht, als Sie den Server aufgerüstet haben und es keine Auswirkungen hatte.

Anstatt willkürlich Dinge wie einen Affen mit einer Schreibmaschine zu tun, in der Hoffnung, dass etwas hilft, profilieren Sie Ihre Anwendung (und führen Sie Lasttests durch) und sehen Sie, was die "schwersten" Aktionen sind. Dann Entscheiden Sie, wie das Problem behoben werden soll, ob es sich um Codeoptimierung, Änderungen an der Architektur, Lastenausgleich oder andere Lösungen handelt.

Weißt du nicht?


0 für die Antwort № 2

stepanian, obwohl ich nicht genau weiß, was du meinstDurch "Verlangsamen" hatte ich vor ein paar Monaten einen ähnlichen Fall, als sich unser Kater aufgrund eines großen Verkehrsaufkommens (einer Virenkampagne) wirklich seltsam verhielt, obwohl sich der Engpass NICHT auf der Festplatte, der CPU oder dem Speicher befand.

In unserem Fall ändern die Connector Aufbau Grundsätzlich löste das Problem, insbesondere das Verständnis der:

  • AcceptCount
  • acceptorThreadCount
  • maxConnections
  • maxThreads

Hoffe das hilft! :)