
könnte Ihre Hilfe gebrauchen, um das zu verstehen. Ich betreibe eine RDS MySQL-Instanz (db.m3.large auf SSD) mit 100 GB Speicher.
Ich bin ein bisschen geschockt, dass mein Gedächtnis nur zu 50 % stimmt:
Diagramm http://f.cl.ly/items/2130242A0K040E392h0L/10.png
Irgendetwas muss ich falsch machen, denn der Server wird derzeit überhaupt nicht stark beansprucht. Hier ist die Grafik der letzten 2 Wochen:
2-Wochen-Nutzungsdiagramm http://f.cl.ly/items/2y411W0z0I1V1T0T3O3T/11.png
Wie Sie sehen, liegt die CPU-Auslastung meist bei 0 %, die DB-Verbindungen sind niedrig und auch die Schreib-/Lesevorgänge sind niedrig.
Ich führe alle InnoDB-Tabellen aus. Das einzige, was mir einfällt (was den Speicher so stark hätte erhöhen können), ist meine Analysefunktion. Ich habe eine Tabelle (geteilt), in der eine tägliche Zusammenfassung der Analyseberechnungen gespeichert wird. Diese Tabelle hat 4 mediumtext
Felder, also habe ich InnoDB geändert, um das Barracuda-Dateiformat für diese Tabelle zu verwenden (auf diese Weise kann ich haben row_format=compressed
). Das ist der einzige DB-Parameter, der für diese Instanz nicht standardmäßig ist (alles andere ist standardmäßig vorhanden).
Ich habe nicht einmal viele Zeilen in dieser Tabelle und die größte Zeile ist im Moment vielleicht maximal 35 KB groß. Es gibt 56 Zeilen für den größten Client (ich habe auch nicht viele Clients). Daher überrascht es mich, dass dies die Ursache sein könnte ...
Können Sie mir einen Einblick geben, warum mein Speicher so hoch sein könnte (oder was ich vermasselt habe)? Liegt es daran, dass MySQL meine Analyseabfragen/-ergebnisse zwischenspeichert? Oder ist es etwas anderes?
Antwort1
Ihr Hinweis darauf, was vor sich geht, finden Sie im Diagramm „Freier Speicher“. Wenn Ihre Datenbank viele Tabellen- und Indexdaten im Prozessspeicher enthalten würde, wäre diese Zahl viel kleiner als sie ist. So wie es aussieht, ist der freizugebende Speicher fast so groß wie der Gesamtspeicher.
Funktioniert wie vorgesehen, hier gibt es nichts zu sehen. Bitte setzen Sie PANIC = FALSE.