Ich habe in letzter Zeit Probleme mit Thrashing, weil mir der Speicher ausgeht. (Mein VPS hat insgesamt 256 Millionen)
Ich versuche MySQL mit mysqltuner.pl zu optimieren und erhalte die folgenden Ergebnisse:
-------- Allgemeine Statistiken ---------------------------------------- ---------- [-] Versionsprüfung für MySQLTuner-Skript übersprungen [OK] Derzeit wird unterstütztes MySQL-Protokoll der Version 5.0.51a-3ubuntu5.4 ausgeführt [OK] Betrieb mit 64-Bit-Architektur -------- Storage Engine Statistics --------------------------------------- ---- [-] Status: + Archive -BDB -Federated -InnoDB -ISAM -NDBCluster [-] Daten in MyISAM-Tabellen: 114M (Tabellen: 454) [!!] Gesamtzahl der fragmentierten Tabellen: 34 -------- Leistungsmetriken ---------------------------------------- --------- [-] Bis zu: 40 s (570 q [14.250 qps], 23 Conn, TX: 154 K, RX: 23 K) [-] Lesen / Schreiben: 100% / 0% [-] Gesamtpuffer: 338,0 MB global + 2,7 MB pro Thread (maximal 20 Threads) [!!] Maximal mögliche Speichernutzung: 392,9M (153% des installierten RAM) [OK] Langsame Abfragen: 0% (5/570) [OK] Höchste Auslastung der verfügbaren Verbindungen: 15% (3/20) [!!] Schlüsselpuffergröße / Gesamtzahl der MyISAM-Indizes: 8,0M / 9,4M [!!] Trefferquote des Schlüsselpuffers: 57,1% (7 zwischengespeicherte / 3 Lesevorgänge) [OK] Abfrage-Cache-Effizienz: 21,9% (7 zwischengespeicherte / 32 ausgewählte) [OK] Cache-Bereinigungen pro Tag abfragen: 0 [OK] Sortierungen, die temporäre Tabellen erfordern: 0% (0 temporäre Sortierungen / 1 Sortierungen) [OK] Temporäre Tabellen, die auf der Festplatte erstellt wurden: 0% (0 auf der Festplatte / 32 insgesamt) [OK] Trefferrate im Thread-Cache: 86% (3 erstellt / 23 Verbindungen) [OK] Trefferquote im Tabellen-Cache: 26% (128 offen / 484 geöffnet) [OK] Verwendetes Limit für offene Dateien: 25% (259 / 1K) [OK] Sofort erworbene Tabellensperren: 100% (492 sofortige / 492 Sperren) -------- Empfehlungen ----------------------------------------- ------------ Allgemeine Empfehlungen: Führen Sie OPTIMIZE TABLE aus, um Tabellen für eine bessere Leistung zu defragmentieren MySQL wurde innerhalb der letzten 24 Stunden gestartet - Empfehlungen können ungenau sein Reduzieren Sie Ihren gesamten MySQL-Speicherbedarf, um die Systemstabilität zu gewährleisten Zu ändernde Variablen: *** MySQLs maximale Speichernutzung ist gefährlich hoch *** *** Fügen Sie RAM hinzu, bevor Sie die MySQL-Puffervariablen erhöhen *** key_buffer_size (> 9,4 MB)
Aber ich bin ein bisschen verwirrt, wie ich die maximale Speichernutzung reduzieren kann. Es scheint auf key_buffer und max_connections zu basieren, aber muss da noch etwas anderes dabei sein?
my.cnf:
key_buffer = 8M max_allowed_packet = 12M thread_stack = 128 KB thread_cache_size = 8 max_connections = 20 table_cache = 128 tmp_table_size = 256 MB max_heap_table_size = 256M join_buffer_size = 256 KB query_cache_limit = 8 Millionen query_cache_size = 64M
Ich habe versucht, MySQL-Tuning-Artikel durchzulesen, aber sie scheinen auf Leute ausgerichtet zu sein, die bereits wissen, was sie tun! Jede Hilfe wäre dankbar. Vielen Dank!