Größe von tmp_table_size / max_heap_table_size / table_cache

MySQL, PostgreSQL, SQLite
mccab99
Posts: 43
Joined: 2006-02-20 08:41
Location: Cloppenburg

Größe von tmp_table_size / max_heap_table_size / table_cache

Post by mccab99 » 2008-01-20 15:35

Hallo,

Ich optimiere gerade mit Hilfe von tuning_primer.sh das Setup meines MySQL-Servers. Im Wesentlichen geht es in eine gute Richtung. Ich bin bloß über einige Dinge verwundert:

a)
tmp_table_size / max_heap_table_size stehen bei mir auf 1GB. Ich habe 62425 offene Tabellen, von denen immer noch 61% auf der HDD erstellt werden (ok - vorher waren es 93%...)
Auch wenn ich die Werte höherschraube, verändert sich am RAM-Verbrauch der Kiste wenig. Habe ich da etwas nicht verstanden?

b)
table_cache steht bei mir auf 8096, der Werte für open_files_limit beträgt 20000. Das scheint für meine insgesamt 6500 Tabellen nicht zu reichen. Zählt er die tmp_tables mit? Bekomme ich nicht irgendwann Probleme mit dem Filesystem (ext3), wenn ich diesen Wert größer ziehe?

Die Kiste ist ein AthlonXP3500+, 2GB RAM, Queries pro Tag habe ich so 1.000.000 (ist das viel? - vielleicht ne naive Frage...), missratene Queries (z.B. keine Indexnutzung) bekämpfe ich gerade erfolgreich und bin runter auf 2,5%).

Die Kiste läuft insgesamt recht rund, weil ich das Backend mit einem Reverseproxy vor dem lighty und eaccelerator ganz gut schützen kann (Squid holt ca. 70% der Anfragen aus seiner Westentasche). MySQL bereitet mir jetzt doch mehr und mehr Sorge.

Gruß,

Maik

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Größe von tmp_table_size / max_heap_table_size / table_cache

Post by daemotron » 2008-01-20 16:23

mccab99 wrote:b)
table_cache steht bei mir auf 8096, der Werte für open_files_limit beträgt 20000. Das scheint für meine insgesamt 6500 Tabellen nicht zu reichen. Zählt er die tmp_tables mit? Bekomme ich nicht irgendwann Probleme mit dem Filesystem (ext3), wenn ich diesen Wert größer ziehe?

Mit dem Dateisystem wohl nicht so schnell (auch wenn ich ext3 nicht gerade als Optimum für einen Hochlast-DB-Server betrachten würde). Aber möglicherweise mit der Anzahl verfügbarer File Descriptors (ot: heißen die Dinger auf deutsch eigentlich "Datei-Deskriptoren"?). Unter anderen unixoiden Systemen ist das jedenfalls häufig ein Thema beim Betrieb eines Datenbank-Servers. Ob Linux das auch limitiert, weiß ich nicht - aber bei OpenBSD hättest Du ohne veränderte sysctl.conf und passende login class für den mysqld-User mit open_files_limit allein kein Glück.