Der integrierte Tomcat von SpringBoot beträgt in den Standardeinstellungen 200 Threads und 10.000 Verbindungen. Standardmäßig beträgt die unterstützte Parallelität 10.000, was bedeutet, dass Tomcat zwei Modi für die Verarbeitung von Verbindungen hat: 1 ist BIO und ein Thread verarbeitet nur eine Socket-Verbindung. Ein Thread verarbeitet mehrere Socket-Verbindungen.
Standardmäßige integrierte Tomcat-Konfiguration
server.tomcat.accept-count
: Warteschlangenlänge, wenn die Anzahl der Threads, die Wenn alle Anforderungen aufgebraucht sind, werden sie in die Warteschlange gestellt. Wenn die Warteschlange voll ist, wird die Verarbeitung abgelehnt.
server.tomcat.max-connections
: Maximale Anzahl von Verbindungen, Standard 10000server.tomcat.accept-count
:等待队列长度,当可分配的线程数全部用完之后,后续的请求将进入等待队列等待,等待队列满后则拒绝处理,默认100。
server.tomcat.max-connections
:最大可被连接数,默认10000
server.tomcat.max-threads
:最大工作线程数,默认200,
server.tomcat.min-spare-threads
server.tomcat.max-threads
: Maximale Anzahl von Arbeitsthreads Der Standardwert ist 200 In der Standardkonfiguration kommt es zu einer Verbindungsverweigerung, nachdem die Anzahl der Verbindungen 10.000 überschreitetWir können auch die Konfigurationsdatei verwenden und die WebServerConfiguration hinzufügen. Java-Datei
server.port=7001 server.tomcat.accept-count=1000 server.tomcat.max-connections=10000 server.tomcat.max-threads=500 server.tomcat.min-spare-threads=100
Bemerkungen:
MySQL-Datenbank-QPS-Kapazitätsproblem:
Primärschlüsselabfrage: zig Millionen Daten == 1-10 ms
Einzigartige Indexabfrage: zig Millionen Daten = = 10-100 ms
Nicht eindeutige Indexabfrage: Dutzende Millionen Daten == 100-1000 ms
Keine Indexdaten: Daten auf Millionenebene == 1000 ms+
Mehrere Möglichkeiten zur Erhöhung der Parallelität von Tomcat 1. Apache + Tomcat wird kombiniert, um Apache für statische Seiten und Tomcat für dynamische Seiten zu verwenden. Gleichzeitig wird die ConnectionTimeout-Zeit reduziert, um den Fall zu bewältigen, dass die Parallelität zu groß ist und es zu spät für das Thread-Recycling ist.
3. Viele Leute empfehlen die Verwendung von C3P0, was die gleichzeitige Leistung des Datenbankzugriffs um ein Vielfaches verbessern kann.
1. Konfigurieren Sie MPM (Multi Processing Modules). ThreadPerChild wird verwendet, um die Anzahl der Threads für jeden Prozess festzulegen. In der Windows-Umgebung ist der Standardwert 64 und der Maximalwert ist 1920. Es wird empfohlen, ihn zwischen 100 und 500 festzulegen. Der Wert wird größer, andernfalls kleiner. Die maximale Anzahl von Anfragen, die jeder untergeordnete Prozess verarbeiten kann, wird durch den Parameter MaxRequestPerChild bestimmt. Der Wert dieses Parameters hängt eher vom Speicher des Servers ab. Wenn der Speicher relativ groß ist, stellen Sie einen kleineren Wert ein.
5. KeepAlive-Unterstützung aktivieren
KeepAlive an, KeepAliveTimeout 15 MaxKeepAliveRequests 1000
Laut tatsächlicher Erfahrung ist der Effekt der Verbesserung der Systemleistung durch Apache- und Tomcat-Cluster sehr offensichtlich Hardware-Ressourcen und deren gemeinsame Nutzung durch die Verarbeitung mehrerer Tomcats. Der Druck, wenn Tomcat allein verwendet wird.
Die maximale Anzahl der vom Webserver zugelassenen Verbindungen hängt auch von den Kernel-Parametereinstellungen des Betriebssystems ab. Normalerweise beträgt sie etwa 2.000 für Windows und etwa 1.000 für Linux.
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der maximalen Parallelität, die vom integrierten Tomcat von Springboot unterstützt wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!