Einfache Zusammenfassung der Methoden zur Leistungsoptimierung von Tomcat

Einfache Zusammenfassung der Methoden zur Leistungsoptimierung von Tomcat

Tomcat selbst optimieren

  • Tomcat-Speicheroptimierung
    • Sagen Sie der JVM beim Start, dass ich einen großen Speicherblock möchte (Speicheroptimierung ist der direkteste Weg).
    • Wir können den Parameter java_OPTS im Tomcat-Startskript catalina.sh festlegen
    • JAVA_OPTS-Parameterbeschreibung
      • Server Aktivieren Sie die Serverversion von JDK
      • Xms Der Mindestspeicher bei der Initialisierung der Java Virtual Machine
      • Xmx Der maximale Speicher, der der Java Virtual Machine zur Verfügung steht
      • XX: PermSize Permanent reservierter Speicherbereich
      • XX:MaxPermSize Maximaler permanent reservierter Bereich im Speicher
    • Konfigurationsbeispiel:
    • JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermanenteGröße=256M -XX:MaxNeueGröße=256m -XX:MaxPermanenteGröße=256m'
    • Hinweis: Die Speicherkonfiguration muss entsprechend dem tatsächlichen Speicher des Servers (oder der virtuellen Maschine) konfiguriert werden.
    • Starten Sie Tomcat neu, damit die Änderungen wirksam werden
  • Tomcat IO-Optimierung
    • Bei Bedarf können Sie APR verwenden, um asynchrone IO-Probleme auf Betriebssystemebene zu lösen. Verwenden Sie als Nächstes NIO.
    • In server.xml
  • Tomcat-Thread-Optimierung
    • maxThreads="600" ///Maximale Anzahl an Threads
    • minSpareThreads="100" ///Anzahl der während der Initialisierung erstellten Threads
    • maxSpareThreads="500" ///Sobald die Anzahl der erstellten Threads diesen Wert überschreitet, schließt Tomcat die Socket-Threads, die nicht mehr benötigt werden.
    • acceptCount="700" //Gibt die Anzahl der Anfragen an, die in die Verarbeitungswarteschlange gestellt werden können, wenn alle verfügbaren Threads zur Verarbeitung von Anfragen verwendet werden. Anfragen, die diese Zahl überschreiten, werden nicht verarbeitet
  • Threadpool verwenden
    • Fügen Sie in server.xml einen Executor-Knoten hinzu und konfigurieren Sie dann die Executor-Eigenschaften des Connectors.
    • namePrefix: Das Namenspräfix von Threads im Threadpool
    • maxThreads: Die maximale Anzahl von Threads im Thread-Pool
    • minSpareThreads: Die Mindestanzahl inaktiver Threads im Thread-Pool
    • maxIdleTime: Wenn die Mindestanzahl inaktiver Threads überschritten wird, warten die verbleibenden Threads diese Zeit lang und werden dann heruntergefahren.
    • threadPriority: Thread-Priorität
<Executor name="tomcatThreadPool" namePrefix="req-exec-"maxThreads="1000" minSpareThreads="50"maxIdleTime="60000"/>
<Connector-Port="8080" Protokoll="HTTP/1.1" Executor="tomcatThreadPool"/>
  • DNS-Lookups deaktivieren
    • Wenn eine Webanwendung Clientinformationen protokollieren möchte, protokolliert sie auch die IP-Adresse des Clients oder wandelt den Computernamen über einen Domänennamenserver in eine IP-Adresse um. DNS-Abfragen erfordern eine Netzwerknutzung und können das Abrufen der entsprechenden IP-Adressen von vielen weit entfernten oder nicht funktionierenden Servern beinhalten, was eine gewisse Zeit in Anspruch nehmen kann. Um die Auswirkungen von DNS-Abfragen auf die Leistung zu eliminieren, können wir DNS-Abfragen deaktivieren, indem wir den Parameterwert „enableLookups“ in der Datei „server.xml“ ändern.
  • Cache-Optimierung
    • Statische Seiten lassen sich am besten im Cache speichern, damit sie nicht jedes Mal neu von der Platte gelesen werden müssen. Hier verwenden wir Nginx als Cache-Server zum Zwischenspeichern von Bildern, CSS- und JS-Dateien, wodurch der Zugriff auf das Backend-Tomcat effektiv reduziert wird.
  • Aktivieren Sie die GZIP-Komprimierung in Tomcat, um die Webleistung zu verbessern
    • Ändern Sie %TOMCAT_HOME%/conf/server.xml und überarbeiten Sie die Knoten wie folgt:
    • Nachteile von GZIP. Im Vergleich zu Projekten ohne GZIP erhöht die Verwendung von GZIP den Druck der Serverkomprimierung (CPU-Verbrauch) und der Clientdekomprimierung, sodass die Konfigurationsanforderungen des Servers höher sind. Darüber hinaus nimmt die Komprimierung auch Zeit in Anspruch. Wenn Sie weniger Platz beanspruchen und eine hohe Komprimierungsrate erzielen möchten, müssen Sie mehr Zeit opfern. Im Gegenteil, wenn Zeit kostbarer ist und Geschwindigkeit erforderlich ist, muss die Komprimierungsrate kleiner sein und natürlich wird mehr Platz beansprucht (Komprimierungsrate = Größe des ursprünglichen Inhalts/komprimierte Größe, je größer die Komprimierungsrate, desto kleiner ist das komprimierte Paket nach der Komprimierung). Dies ist der Widerspruch zwischen physischem Raum und Zeit.
  • Verwenden Sie nginx, um einen Cluster zu erstellen
    • Optimierung virtueller JVM-Maschinen
    • Betriebssystem-Tuning
    • Bei der Betriebssystemoptimierung geht es darum, die verfügbare Speicherkapazität so weit wie möglich zu erhöhen, die CPU-Frequenz zu verbessern, die Lese- und Schreibgeschwindigkeit des Dateisystems sicherzustellen usw.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So erstellen Sie ein Apr-Modul zur Tomcat-Leistungsoptimierung
  • Detaillierte Erläuterung der Tomcat-Sicherheitskonfiguration und Leistungsoptimierung
  • Tomcat-Leistungsoptimierung (Leistungsübersicht)
  • So erstellen Sie mit Nginx+Tomcat einen Hochleistungs-Load-Balancing-Cluster
  • JVM Tomcat-Leistungspraxis (empfohlen)

<<:  So autorisieren Sie Remoteverbindungen in MySQL unter Linux

>>:  Tiefgreifendes Verständnis des asynchronen Wartens in Javascript

Artikel empfehlen

Anfänger lernen einige HTML-Tags (3)

Anfänger, die mit HTML in Berührung kommen, lerne...

Einige Erfahrungen zum Aktivieren von HTTPS

Da sich die heimische Netzwerkumgebung immer weit...

Installieren Sie das Linux-System automatisch basierend auf Cobbler

1. Komponenten installieren yum install epel-rpm-...

Implementierung der Nginx-Konfiguration des lokalen Image-Servers

Inhaltsverzeichnis 1. Einführung in Nginx 2. Aufb...

Einführung in den vollständigen Namen und die Funktion von HTML-Tags

Alphabetisch DTD: Gibt an, in welcher XHTML 1.0 D...

Detaillierte Erläuterung der Nginx-Prozessverwaltungs- und Neuladeprinzipien

Prozessstrukturdiagramm Nginx ist eine Multiproze...

So verfolgen Sie Benutzer mit JS

Inhaltsverzeichnis 1. Synchrones AJAX 2. Asynchro...

Alibaba Cloud beantragt ein kostenloses SSL-Zertifikat (https) von Cloud Shield

Da das Projekt den https-Dienst nutzen muss, habe...

Vue erzielt einen nahtlosen Karusselleffekt (Laufschrift)

In diesem Artikelbeispiel wird der spezifische Co...

Probleme mit der Rancher-Bereitstellung und dem Importieren von K8S-Clustern

Die Rancher-Bereitstellung kann über drei Archite...

Details zur Bündelung statischer Ressourcen ohne JavaScript

Inhaltsverzeichnis 1. Benutzerdefinierter Import ...