Heim > System-Tutorial > LINUX > Analysieren Sie N Möglichkeiten zur Optimierung der Tomcat-Leistung

Analysieren Sie N Möglichkeiten zur Optimierung der Tomcat-Leistung

PHPz
Freigeben: 2024-06-14 21:10:00
Original
826 Leute haben es durchsucht

Analysieren Sie N Möglichkeiten zur Optimierung der Tomcat-Leistung

Tomcat ist oft die Standardentwicklungsumgebung für JavaWeb-Praktiker, aber die Standardkonfiguration von Tomcat als Produktionsumgebung, insbesondere die Konfiguration von Speicher und Threads, ist standardmäßig sehr niedrig und kann leicht zu einem Leistungsengpass führen, Tomcat Es gibt noch viele Funktionen, die verbessert werden können. Im Folgenden wird die Tomcat-Optimierung vorgestellt, die in Speicher, Thread und E/A unterteilt werden kann.
Tomcat ist oft die Standardentwicklungsumgebung für JavaWeb-Praktiker, aber die Standardkonfiguration von Tomcat als Produktionsumgebung, insbesondere die Konfiguration von Speicher und Threads, ist standardmäßig sehr niedrig und kann leicht zu einem Leistungsengpass führen.

Glücklicherweise gibt es bei Tomcat noch viel Raum für Verbesserungen. Im Folgenden wird die Tomcat-Optimierung vorgestellt, die in Speicher, Threads und E/A unterteilt werden kann.

1: Tomcat-Speicheroptimierung, teilen Sie der JVM beim Start mit, dass ich einen großen Speicher möchte (die Optimierung des Speichers ist der direkteste Weg)

catalina.bat unter Windows

catalina.sh unter Linux wie:

JAVA_OPTS='-Xms256m -Xmx512m'  
Nach dem Login kopieren

-Xms JVM-Initialisierungs-Heap-Größe

-Xmx Der Maximalwert des JVM-Heaps. Die tatsächliche Parametergröße basiert auf der Serverkonfiguration oder projektspezifischen Einstellungen.

2: Tomcat-Thread-Optimierung in server.xml wie:

maxThreads="X" bedeutet, dass bis zu X Verbindungen gleichzeitig verarbeitet werden

minSpareThreads="X" X Verbindungen initialisieren

maxSpareThreads="X" bedeutet, dass, wenn es höchstens X Threads geben kann, einmal mehr als X, die Threads geschlossen werden, die nicht mehr benötigt werden

acceptCount="X" Wenn die Anzahl der gleichzeitig verbundenen Personen maxThreads erreicht, können Sie sich weiterhin in die Warteschlange stellen, und die Warteschlangengröße beträgt X. Wenn sie X überschreitet, wird sie nicht verarbeitet

Drei: Tomcat IO-Optimierung

1: Synchrones Blockieren von IO (JAVA BIO) Synchronisation und Blockierung. Der Serverimplementierungsmodus besteht aus einer Verbindung und einem Thread (es ist beängstigend, darüber nachzudenken, Threads sind sehr wertvolle Ressourcen). Natürlich kann dies durch den Thread-Pool-Mechanismus verbessert werden.

2: JAVA NIO: Es ist in synchrones nicht blockierendes IO, asynchrones blockierendes IO und BIO unterteilt. Der größte Unterschied besteht darin, dass ein Thread für die Verarbeitung mehrerer Verbindungen wiederverwendet werden kann

3: Asynchrones nicht blockierendes IO (Java NIO2 wird auch als AIO bezeichnet) ist der zugrunde liegende Unterschied des Betriebssystems. Es kann mit der Expresszustellung verglichen werden Besuchen Sie die offizielle Website, um zu überprüfen, ob die Expresslieferung zugestellt wurde. Wenn Sie ankommen (vielleicht mehrmals), können Sie die Expresssendung selbst abholen. AIO bedeutet, dass der Kurier die Ware an Ihre Haustür liefert (Sie müssen nicht bezahlen). Aufmerksamkeit auf den Fortschritt des Express).

Die BIO-Methode eignet sich für Architekturen mit einer relativ kleinen und festen Anzahl von Verbindungen. Diese Methode stellt relativ hohe Anforderungen an Serverressourcen und die Parallelität ist auf Anwendungen beschränkt. Sie war die einzige Wahl vor JDK1.4, aber das Programm ist intuitiv , einfach und leicht zu verstehen.

Die NIO-Methode eignet sich für Architekturen mit einer großen Anzahl von Verbindungen und relativ kurzen Verbindungen (leichte Vorgänge), z. B. für Chat-Server. Die Parallelität ist auf Anwendungen beschränkt und die Programmierung beginnt mit der Unterstützung.

Die AIO-Methode wird in Architekturen mit einer großen Anzahl von Verbindungen und relativ langen Verbindungen (schweren Vorgängen) verwendet, z. B. bei Fotoalbum-Servern. Sie ruft das Betriebssystem vollständig auf, um an gleichzeitigen Vorgängen teilzunehmen. Die Programmierung ist relativ kompliziert Unterstütze es.

In server.xml

Realisieren Sie IO-Switching für Tomcat.

Viertens: Big Killer APR
APR是从操作系统级别来解决异步的IO问题,大幅度的提高性能. (http://apr.apache.org/).
Nach dem Login kopieren
APR (Apache Portable Runtime) ist eine hochportable Bibliothek, die den Kern von Apache HTTP Server 2.x bildet. Sie lässt sich besser in andere lokale Webtechnologien integrieren und macht Java als Hochleistungs-Webserverplattform im Allgemeinen effizienter. Anstatt einfach als Hintergrundcontainer zu dienen.

In einer Produktionsumgebung, insbesondere wenn Tomcat direkt als WEB-Server verwendet wird, sollte Tomcat Native verwendet werden, um die Leistung zu verbessern. Ohne APR sind im Grunde 300 Threads bald voll und müssen nach dem Hinzufügen von APR warten. Die Anzahl der gleichzeitigen Threads ist erheblich gesunken, von ursprünglich 300 auf nur noch ein paar Dutzend, und neue Anfragen werden ohne Blockierung eingehen.

Bei Tests in einer LAN-Umgebung wurden sogar 400 gleichzeitige Anfragen gleichzeitig verarbeitet/übertragen. In einer realen Internetumgebung beträgt die Seitenverarbeitungszeit jedoch nur weniger als 0,1 % und die meiste Zeit wird für die Seitenübertragung verwendet Wenn APR nicht verwendet wird, kann ein Thread jeweils nur einen Benutzer verarbeiten, was unweigerlich zu einer Blockierung führt. Daher ist es unbedingt erforderlich, apr in einer Produktionsumgebung zu verwenden.

Installieren Sie die Apache Tomcat Native Library und unterstützen Sie sie beim direkten Start. Informationen zu spezifischen Installationsmethoden finden Sie in anderen Blogs und Artikeln Codeprobleme und Tomcat-Optimierung Auf dieser Ebene können die meisten Leistungsanforderungen erfüllt werden.

最后一句话"再牛B的服务器,也顶不住一个傻B的代码".优化的前提条件是良好的代码质量和设计.
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAnalysieren Sie N Möglichkeiten zur Optimierung der Tomcat-Leistung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:linuxprobe.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage