Optimierung der MySQL 4G-Speicherserverkonfiguration

Optimierung der MySQL 4G-Speicherserverkonfiguration

Da die Anzahl der Besuche auf der Website des Unternehmens zunimmt (über 100.000 PV pro Tag), wird MySQL natürlich zum Engpass. In Bezug auf die MySQL-Optimierung ist die Optimierung der MySQL-Systemparameter das Grundlegendste.

MySQL hat den größten Einfluss auf die Leistung der Webarchitektur und ist zudem ein wichtiger Kernbestandteil. Die ordnungsgemäße Optimierung der MySQL-Einstellungen wirkt sich direkt auf die Geschwindigkeit und Kapazität des Webs aus. Gleichzeitig stellt MySQL auch den am schwierigsten zu optimierenden Teil dar. Es erfordert nicht nur einige MySQL-Fachkenntnisse, sondern auch langfristige Beobachtung und Statistiken sowie erfahrungsbasierte Urteile und das anschließende Festlegen angemessener Parameter. Als Nächstes werfen wir einen Blick auf einige Grundlagen der MySQL-Optimierung und die Optimierung von MySQL selbst (my.cnf).

Wir stellen einige Parameter vor, die einen größeren Einfluss auf die Leistung haben. Da die Optimierungseinstellungen der Datei my.cnf eng mit der Serverhardwarekonfiguration zusammenhängen, geben wir eine allgemeine 2U-Serverhardwareumgebung an: CPU: 2 Intel Xeon 2,4 GHz. Speicher: 4 GB DDR. Festplatte: SCSI.

Als nächstes erklären wir basierend auf der obigen Hardwarekonfiguration und einer optimierten my.cnf:

[mysqld] 
 Port = 3306 
 Server-ID = 1 
 Socket = /tmp/mysql.sock 
 Überladesperre 
#Vermeiden Sie externe Sperren von MySQL, verringern Sie die Fehlerwahrscheinlichkeit und verbessern Sie die Stabilität. 
Namensauflösung überspringen 
#Deaktivieren Sie MySQL bei der Durchführung der DNS-Auflösung für externe Verbindungen. Mit dieser Option können Sie die Zeit verkürzen, die MySQL für die DNS-Auflösung benötigt. Beachten Sie jedoch, dass bei Aktivierung dieser Option alle Autorisierungen für Remote-Host-Verbindungen die IP-Adressmethode verwenden müssen, da MySQL sonst die Verbindungsanforderung nicht normal verarbeiten kann!
back_log = 384 
Der Wert des Parameters #back_log gibt an, wie viele Anfragen in einem kurzen Zeitraum im Stapel gespeichert werden können, bevor MySQL vorübergehend nicht mehr auf neue Anfragen reagiert. Wenn das System in kurzer Zeit viele Verbindungen hat, müssen Sie den Wert dieses Parameters erhöhen, der die Größe der Warteschlange für eingehende TCP/IP-Verbindungen angibt. Verschiedene Betriebssysteme haben ihre eigenen Beschränkungen hinsichtlich der Warteschlangengröße. Der Versuch, den Backlog-Wert höher als das Limit Ihres Betriebssystems einzustellen, hat keine Auswirkungen. Der Standardwert ist 50. Für Linux-Systeme wird empfohlen, diesen Parameter auf eine Ganzzahl kleiner als 512 zu setzen.
Schlüsselpuffergröße = 256 M 
#key_buffer_size gibt die für die Indizierung verwendete Puffergröße an. Eine Erhöhung kann die Indexverarbeitungsleistung verbessern. Bei Servern mit etwa 4 GB Arbeitsspeicher kann dieser Parameter auf 256 M oder 384 M eingestellt werden. Hinweis: Wenn dieser Parameterwert zu hoch eingestellt ist, verringert sich die Gesamteffizienz des Servers!
max_allowed_packet = 4M 
 Thread-Stapel = 256 KB 
 Tabellencache = 128 KB 
 Sortierpuffergröße = 6 M 
#Frage die Puffergröße ab, die beim Sortieren verwendet werden kann. Hinweis: Der diesem Parameter entsprechende zugewiesene Speicher ist exklusiv für jede Verbindung. Wenn 100 Verbindungen vorhanden sind, beträgt die tatsächlich zugewiesene Gesamtgröße des Sortierpuffers 100 × 6 = 600 MB. Daher beträgt die empfohlene Einstellung für Server mit etwa 4 GB Arbeitsspeicher 6–8 M.
Lesepuffergröße = 4 M 
#Die Puffergröße, die für Leseabfragevorgänge verwendet werden kann. Wie sort_buffer_size ist auch der diesem Parameter entsprechende zugewiesene Speicher exklusiv für jede Verbindung.
Join-Puffergröße = 8 M 
#Die Puffergröße, die für gemeinsame Abfragevorgänge verwendet werden kann. Wie sort_buffer_size ist auch der diesem Parameter entsprechende zugewiesene Speicher exklusiv für jede Verbindung.
myisam_sort_buffer_size = 64 M 
 Tabellencache = 512 
 Thread-Cache-Größe = 64 
 Abfrage-Cachegröße = 64 M 
#Geben Sie die Größe des MySQL-Abfragepuffers an. Sie können in der MySQL-Konsole beobachten, dass ein sehr großer Wert von Qcache_lowmem_prunes darauf hinweist, dass der Puffer häufig nicht ausreicht; ein sehr großer Wert von Qcache_hits darauf hinweist, dass der Abfragepuffer sehr häufig verwendet wird. Ein kleiner Wert beeinträchtigt die Effizienz. In diesem Fall können Sie erwägen, den Abfragepuffer nicht zu verwenden; ein sehr großer Wert von Qcache_free_blocks weist darauf hin, dass sich viele Fragmente im Puffer befinden.
temporäre Tabellengröße = 256 M 
 max_Verbindungen = 768 
#Geben Sie die maximale Anzahl von Verbindungsvorgängen an, die von MySQL zugelassen werden. Wenn beim Zugriff auf das Forum häufig die Fehlermeldung „Zu viele Verbindungen“ erscheint, müssen Sie den Wert dieses Parameters erhöhen.
max_connect_errors = 10000000 
 Wartezeitüberschreitung = 10 
#Geben Sie die maximale Verbindungszeit für eine Anfrage an. Für einen Server mit etwa 4 GB Speicher kann sie auf 5-10 eingestellt werden. 
Thread_Parallelität = 8 
#Der Wert dieses Parameters ist die Anzahl der logischen CPUs auf dem Server*2. In diesem Beispiel hat der Server 2 physische CPUs und jede physische CPU unterstützt HT-Hyperthreading, daher ist der tatsächliche Wert 4*2=8
 Überspringen-Netzwerken 
#Das Aktivieren dieser Option kann den TCP/IP-Verbindungsmodus von MySQL vollständig beenden. Wenn der WEB-Server über eine Remote-Verbindung auf den MySQL-Datenbankserver zugreift, aktivieren Sie diese Option nicht! Ansonsten funktioniert die Verbindung nicht!
Tabellencache = 1024 
#Je größer der physische Speicher, desto größer die Einstellung. Der Standardwert ist 2402 und die beste Einstellung ist 512-1024 innodb_additional_mem_pool_size = 4M 
#Standard ist 2M 
 innodb_flush_log_at_trx_commit = 1 
#Auf 0 setzen, um zu warten, bis die innodb_log_buffer_size-Warteschlange voll ist, bevor sie alle zusammen gespeichert werden. Der Standardwert ist 1 
 innodb_log_buffer_size=2M 
#Standard ist 1M 
 innodb_thread_concurency=8 
#Stellen Sie es auf die Anzahl der CPUs auf Ihrem Server ein. Der Standardwert ist normalerweise 8. 
 Schlüsselpuffergröße = 256 M 
#Der Standardwert ist 218, am besten auf 128 anpassen tmp_table_size=64M 
#Der Standardwert ist 16 M, passen Sie ihn für die beste read_buffer_size=4 M auf 64-256 an 
#Standard ist 64K 
 read_rnd_buffer_size=16M 
#Standard ist 256K 
 Sortierpuffergröße = 32 M 
#Standard ist 256K 
 Thread-Cache-Größe = 120 
#Standard ist 60 
 query_cache_size=32M

Beachten:

1. Wenn Key_reads zu groß ist, sollten Sie Key_buffer_size in my.cnf erhöhen, um Key_reads/Key_read_requests auf mindestens 1/100 zu halten, je kleiner, desto besser.

2. Wenn Qcache_lowmem_prunes groß ist, erhöhen Sie den Wert von Query_cache_size.

Zusammenfassen

Oben ist die vom Herausgeber eingeführte Optimierung der MySQL 4G-Speicherserverkonfiguration. Ich hoffe, sie ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zur Verwendung von MySQL-Speichertabellen und temporären Tabellen
  • Zusammenfassung der speicherbezogenen Parameter von MySQL 8.0
  • Lösungen für MySQL OOM (Speicherüberlauf)
  • Detaillierte Erklärung, wie Sie den Speicherverbrauch in MySql reduzieren können
  • Detaillierte Erklärung zum Anzeigen der MySQL-Speichernutzung
  • Detaillierte Erläuterung des chinesischen Konfigurationsschemas my.ini zur MySql-Optimierung: InnoDB, 4 GB Speicher und mehrere Abfragen
  • Die perfekte Lösung für den häufig auftretenden Startfehler bei MySQL mit unzureichendem Arbeitsspeicher
  • Test und Lösung für den großen Speicherverbrauch und die hohe CPU-Auslastung von MySQL
  • Lösung für hohen Speicherverbrauch beim Starten von MySQL 5.6
  • Detaillierte Analyse des MySQL 8.0-Speicherverbrauchs

<<:  So installieren Sie Docker auf Raspberry Pi

>>:  Zusammenfassung mehrerer häufig verwendeter String-Methoden in JavaScript (unbedingt lesenswert für Anfänger)

Artikel empfehlen

Kopieren von JS-Objekten (Deep Copy und Shallow Copy)

Inhaltsverzeichnis 1. Oberflächliche Kopie 1. Obj...

Detaillierte Erläuterung der JavaScript-Implementierung der Hash-Tabelle

Inhaltsverzeichnis 1. Hash-Tabellenprinzip 2. Das...

MySQL-Einfügungsproblem bei JSON

MySQL 5.7.8 und höher unterstützt nun einen nativ...

Vue3 + el-table realisiert Zeilen- und Spaltenkonvertierung

Inhaltsverzeichnis Zeilen-Spalten-Konvertierung A...

Detaillierte Erklärung der Winkelinhaltsprojektion

Inhaltsverzeichnis Einzelne Inhaltsprojektion Mul...

Detaillierte Analyse der SQL-Ausführungsschritte

Detaillierte Analyse der SQL-Ausführungsschritte ...

Der Unterschied zwischen VOLUME und docker -v in Dockerfile

Es gibt offensichtliche Unterschiede zwischen der...