Heim >tägliche Programmierung >PHP-Kenntnisse >Lösung mit hoher Parallelität und großem Datenverkehr
1. Verwandte Konzepte der Architektur mit hoher Parallelität
Das Konzept der hohen Parallelität: Parallelität, hohe Parallelität, bezieht sich normalerweise auf gleichzeitigen Zugriff. Das heißt, wie viele Besuche zu einem bestimmten Zeitpunkt gleichzeitig erfolgen.
2. Worüber sollten wir uns in Bezug auf das Problem der hohen Parallelität gemeinsam Sorgen machen?
qps: Die Anzahl der Anfragen oder Abfragen pro Sekunde. Im Internetbereich bezieht es sich auf die Anzahl der Antwortanfragen pro Sekunde (http-Durchsatz: die Anzahl der pro Zeiteinheit verarbeiteten Anfragen (normalerweise bestimmt durch QPS und Parallelität). ). Antwortzeit: Die Zeit, die zum Senden einer Anfrage und zum Empfangen einer Antwort benötigt wird, beträgt beispielsweise 100 ms, bis das System eine HTTP-Anfrage verarbeitet , Seitenaufrufe oder Klicks. Die Anzahl der innerhalb eines Zeitraums besuchten Seiten Ihrer Website wird nur einmal gezählt Besucher durchsuchen die Website mehrmals innerhalb eines bestimmten Zeitraums und werden nur als 1 unabhängiger Besucher gezählt: Bandbreitengröße berechnen. Es gibt zwei Indikatoren, die beachtet werden müssen: Spitzenverkehr und durchschnittliche tägliche Website-Bandbreite = pv /statistische Zeit (umgerechnet in Sekunden) * durchschnittliche Seitengröße (Einheit KB) * 8qps entspricht nicht der Anzahl gleichzeitiger Verbindungen. Qps ist die Anzahl gleichzeitiger Verbindungen Das System gleichzeitig. Die Spitzenzahl der Anfragen pro Sekunde (qps) = (80 % der Gesamtzahl der PVs) / (20 % der Zahl der Sekunden in 6 Stunden: die maximale Zahl der Parallelitäten). denen der Test standhalten kann, und die maximale Anzahl von Parallelitäten, denen der Test standhalten kann. QPS-Wert-Testtools: ab, wrk, http_loadab: können mehrere gleichzeitige Threads erstellen, um zu simulieren, dass mehrere Besucher gleichzeitig auf eine bestimmte URL-Adresse zugreifen. Sein Testziel basiert auf der URL, sodass es zum Testen des Lastdrucks von Apache verwendet werden kann. Ja, es kann getestet werden Überschneiden Sie sich nicht. Führen Sie Stresstests bei Online-Diensten durch, um sicherzustellen, dass die CPU, der Speicher, das Netzwerk usw. der Maschine, auf der sich das Testtool befindet, und der getesteten Front-End-Maschine 75 % des maximalen Grenzwerts nicht überschreiten
4. Lösungen unter verschiedenen QPS
Optimierungsbeispiele:
a, qps erreicht 100
Angenommen, jede Anforderung der relationalen Datenbank wird innerhalb von 0,01 Sekunden abgeschlossen.
Angenommen, eine einzelne Seite hat nur eine SQL-Abfrage, dann bedeutet 1000ps 100 Anfragen werden innerhalb von 1 Sekunde abgeschlossen, aber zu diesem Zeitpunkt können wir die Datenbank nicht garantieren. Die Abfrage kann 100 Mal abgeschlossen werden. Schema: Datenbank-Cache-Schicht, Datenbank-Lastausgleich Die Bandbreite des Website-Exports beträgt etwa 8 MB. Gehen Sie davon aus, dass jede Seite nur 10 KB groß ist. Unter Parallelitätsbedingungen ist die Bandbreite von 100 MB erschöpft. Plan: CDN-Beschleunigung, Lastausgleich. QPS erreicht 1000. Statischer HTML-Cache. QPS erreicht 2000auf diesem Niveau. Dateisystem-Zugriffssperren sind zu einer Katastrophe geworden.
Plan: Geschäftstrennung, verteilter Speicher
5. Fall einer Lösung mit hoher Parallelität
Front-End-Optimierung: Reduzieren Sie http-Anfragen, fügen Sie asynchrone Anfragen hinzu, aktivieren Sie den Browser Caching, Dateikomprimierung, CDN-Beschleunigung, Einrichtung eines unabhängigen Bildservers
Serverseitige Optimierung: Seitenstatik, gleichzeitige Verarbeitung, WarteschlangenverarbeitungDatenbankoptimierung: Datenbank-Caching, Unterdatenbank und Untertabelle, Partitionsoperation (kann mit Tools durchgeführt werden ), Lese- und Schreibtrennung, Lastausgleich
Webserveroptimierung: Lastausgleich (Verwendung von Reverse-Proxy, LVS, um einen Lastausgleich zu erreichen)
Das obige ist der detaillierte Inhalt vonLösung mit hoher Parallelität und großem Datenverkehr. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!