1. Analytisches Denken 1. Beseitigen Sie die eigenen Gründe der Maschine 2. Server-Leistungsanalyse 3. Analyse des Projekts selbst (nicht detailliert) 4. Analyse virtueller Maschinen 5. Datenbankanalyse 2. Detaillierte Analysemethode 1. Beseitigen Sie die eigenen Gründe der Maschine Sie können Webmaster-Tools verwenden, um die Geschwindigkeit Ihrer Website zu testen. 2. Server-Leistungsanalyse Verwenden Sie den Befehl top, um die Ressourcennutzung des Servers anzuzeigen. Analysieren Sie hauptsächlich die CPU- und Speichernutzung (der Befehl top ist ein häufig verwendetes Leistungsanalysetool unter Linux, mit dem die Ressourcennutzung jedes Prozesses im System in Echtzeit angezeigt werden kann. Die Prozessliste wird standardmäßig alle 5 Sekunden aktualisiert und ähnelt daher dem Windows Task-Manager.): Die dritte Zeile zeigt die CPU-Auslastung, die detaillierte Bedeutung ist wie folgt: us – der Prozentsatz der CPU, der durch Benutzerspeicher belegt ist, sy – der Prozentsatz der CPU, der durch Kernelspeicher belegt ist, ni – der Prozentsatz der CPU, der durch Prozesse belegt ist, deren Priorität geändert wurde, id – der Prozentsatz der inaktiven CPU, wa – der Prozentsatz der CPU, der durch IO-Wartezeiten belegt ist, hi – der Prozentsatz der CPU, der durch Hard-Interrupts (Hardware-IRQ) belegt ist, si – der Prozentsatz der CPU, der durch Soft-Interrupts (Software-Interrupts) belegt ist, st – Steal Time, die tatsächliche CPU-Zeit, die Aufgaben zugewiesen ist, die auf anderen virtuellen Maschinen auf dem Host ausgeführt werden, im Allgemeinen nur im Betriebssystem der virtuellen Maschine. Die 4. Zeile zeigt die aktuelle Speichersituation. Der gesamte Serverspeicher beträgt 8054352 KB, 2879468 KB werden verwendet, 5174884 KB sind übrig und 265728 KB sind gepuffert. Mein persönliches Verständnis ist: Wenn der US-Prozentsatz weniger als 50 % beträgt, besteht kein Grund, das Serverkonfigurationsproblem zu berücksichtigen. Wenn der US-Prozentsatz des Servers über einen längeren Zeitraum über 70 % liegt, können Sie eine Verstärkung der Hardwarekonfiguration des Servers in Betracht ziehen. Darüber hinaus müssen Sie auch den Netzwerkstatus des Servers überprüfen. Sie können den Netzwerkstatus grundsätzlich ermitteln, indem Sie eine große Datei herunterladen. 3. Analyse des Projekts selbst Wenn Sie einen JDBC-Verbindungspool verwenden, müssen Sie die Konfiguration des Verbindungspools analysieren (maximale Anzahl von Thread-Pools, Freigabezeit usw. analysieren). Hier wird C3P0 als Beispiel verwendet. Nachfolgend sehen Sie die Konfiguration eines Projekts, an dem ich einmal gearbeitet habe: Dies war ursprünglich nur ein Konfigurationsplan für lokale Tests. Aus Unachtsamkeit habe ich vergessen, ihn zu ändern, nachdem ich online gegangen war. Wenn mehrere Personen den Server besuchen, tritt ein Timeout für die Wartezeit auf. Wir müssen die entsprechenden Konfigurationsdaten entsprechend der tatsächlichen Situation des Projekts festlegen. Es ist auch möglich, dass die langsame Reaktion durch eine unangemessene Projektgestaltung verursacht wird, was ich hier nicht im Detail erläutern werde.
4. Analyse virtueller Maschinen Verwenden Sie den Befehl top, um die Speichernutzung der virtuellen Maschine anzuzeigen. Manchmal können Sie feststellen, dass der von der virtuellen Maschine belegte Speicheranteil zwar nicht groß ist, es aber eine offensichtliche Obergrenze gibt. Wir müssen die Konfiguration der virtuellen Maschine überprüfen. Lösung (am Beispiel von Tomcat): Der konkrete Wert hängt von der tatsächlichen Situation ab. 5. Datenbankanalyse (MySql) Bei der Analyse einer Datenbank müssen viele Aspekte berücksichtigt werden. Hier sind nur einige der Situationen, die ich erlebt habe: a. Maximale Anzahl von Verbindungen
Threads_connected --- Anzahl offener Verbindungen Threads_running --- Dieser Wert bezieht sich auf die Anzahl der aktiven Verbindungen, die im Allgemeinen viel niedriger ist als der verbundene Wert Wenn der Wert für die maximale Anzahl von Verbindungen zu klein ist, können Sie ihn entsprechend der tatsächlichen Situation ändern. Im Allgemeinen kann er auf 1000 geändert werden. Es gibt zwei Möglichkeiten, ihn einzustellen: 1. Temporäre Einstellungen, werden nach einem Neustart des Dienstes ungültig 2. Ändern Sie die Datenbankkonfigurationsdatei Fügen Sie in der Datei /etc/my.cnf unter [mysqld] eine Zeile hinzu oder löschen Sie sie: max_connections = 1000 b. Timeout-Steuerung MySQL hat eine Eigenschaft namens „wait_timeout“, der Standardwert beträgt 28800 Sekunden (8 Stunden), der Wert von wait_timeout kann festgelegt werden, der Maximalwert kann jedoch nur 2147483 betragen, nicht größer. Dies entspricht ungefähr 24,85 Tagen, die mit dem Befehl „globale Variablen wie ‚wait_timeout‘ anzeigen“ angezeigt werden können. Die Bedeutung von wait_timeout ist: Wenn eine Verbindung länger als 8 Stunden inaktiv ist, trennt Mysql die Verbindung automatisch. Einfach ausgedrückt: Wenn eine Verbindung 8 Stunden lang inaktiv ist, wird sie automatisch getrennt. Da dbcp nicht überprüft, ob die Verbindung gültig ist, treten bei der Verwendung zur Durchführung von Datenoperationen Ausnahmen auf. Wenn das Problem durch die Timeout-Steuerung verursacht wird, ist es nicht empfehlenswert, den wait_timeout-Wert zu ändern. Das Problem kann gelöst werden, indem nach der Datenbankverbindungs-URL „&autoReconnect=true&failOverReadOnly=false“ hinzugefügt wird. c. DNS-Rückwärtsauflösung Wenn die MySQL-Datenbank eine Netzwerkverbindung empfängt, erhält sie zuerst die IP-Adresse der anderen Partei und führt dann eine umgekehrte DNS-Auflösung für die IP-Adresse durch, um den der IP-Adresse entsprechenden Hostnamen zu erhalten. Über den Hostnamen können Sie die Berechtigungen im Berechtigungssystem festlegen. Die umgekehrte DNS-Auflösung ist zeitaufwändig und kann dem Benutzer langsam erscheinen. Manchmal verweist der durch die umgekehrte Analyse aufgelöste Hostname nicht auf diese IP-Adresse und die Verbindung kann nicht erfolgreich sein. Sie können MySQL daran hindern, eine umgekehrte DNS-Auflösung in der Konfigurationsdatei durchzuführen, indem Sie dem Abschnitt [mysqld] von my.cnf die folgende Zeile hinzufügen: skip-name-resolve (dasselbe für Windows und Linux) d. Tabellen-Cache globalen Status wie „open%tables%“ anzeigen; Anzahl der offenen Tische anzeigen: open_tables: ist die Anzahl der derzeit im Cache geöffneten Tabellen. opened_tables: ist die Anzahl der Tabellen, die seit dem Start von MySQL geöffnet wurden. Wenn der Opened_tables-Wert sehr groß ist, bedeutet dies, dass der Cache zu klein ist, was zu häufigen Tabellenöffnungen führt. Sie können die aktuelle table_open_cache-Einstellung überprüfen: Variablen wie 'table_open_cache' anzeigen; Obergrenze des Cache anzeigen Es gibt zwei Möglichkeiten, den Wert von table_open_cache festzulegen (wenn der Server über etwa 4 GB Speicher verfügt, wird empfohlen, ihn auf 2048 festzulegen): 1. Temporäre Einstellungen, werden nach einem Neustart des Dienstes ungültig setze globalen table_open_cache=2048; 2. Ändern Sie die Datenbankkonfigurationsdatei Fügen Sie in der Datei /etc/my.cnf unter [mysqld] eine Zeile hinzu oder löschen Sie sie: table_open_cache = 2048 e. Langsames Abfrageprotokoll Der Zweck der Aufzeichnung langsamer Abfrageprotokolle besteht darin, zu bestätigen, ob die langsame Antwort des Servers durch die langsame Ausführung bestimmter Anweisungen verursacht wird. Ich werde nicht näher auf langsame Abfragen eingehen, davon gibt es im Internet eine Menge. Letztendlich gibt es jedoch laut meiner tatsächlichen Projektanalyse kein Problem damit. Es ist die CPU von MongoDb, die direkt voll ist. Kommentieren Sie es einfach aus. 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:
|
<<: Verstehen Sie einfach die Unterschiede in den Prinzipien gängiger SQL-Delete-Anweisungen
>>: Singleton-Entwurfsmuster in JavaScript
Vorwort Die Zeichenfolgentypen der MySQL-Datenban...
In diesem Artikel erfahren Sie, wie Sie Python3.6...
In Fortsetzung des vorherigen Artikels erstellen ...
Inhaltsverzeichnis 1. Softwarepaket 2. Installier...
Problem: Die Partition, in der MySQL Datendateien...
Detailliertes Beispiel zum Beheben der Tablespace...
Das Datenträgerkontingent ist die Speichergrenze ...
Der Installationsprozess von MySQL 8.0 Windows Zi...
1. Hintergrund Die Projekte des Unternehmens wurd...
Wenn die Seite nicht reagiert, ist die Anzeige de...
Installieren Sie das SSH-Tool 1. Öffnen Sie das T...
Inhaltsverzeichnis Grundlegende Syntax für Multi-...
In diesem Artikel wird der spezifische Code von j...
Bei der Webentwicklung kann es vorkommen, dass Fl...
Die Arbeit als Betriebs- und Wartungsingenieur is...