Einzelnen Beitrag anzeigen
  #3  
Alt 15.02.2007, 15:26
noto noto ist offline
Registered User
 
Registriert seit: 01.2007
Beiträge: 405

Script macht Optimierungsvorschläge. Einstellungen muss man in der my.cnf sebst eintragen. SQL zu optimieren benötigt etwas Zeitaufwand und ist auch von der PHP Anwendung selbst abhängig.

Wie soll die /etc/my.cnf aussehen?

Bei vServern/rootDS mit wenig RAM sollte man mit kleinen Werten beginnen und dann /usr/bin/tuning-primer.sh laufen lassen

Beispiel my.cnf
Code:
[mysqld]

key_buffer = 2M

sort_buffer_size = 32K
myisam_sort_buffer_size = 32K

read_buffer_size = 16K
read_rnd_buffer_size = 32K

query_cache_size = 2M
thread_cache = 8
table_cache = 512

max_connections = 20
low_priority_updates = 1
long_query_time = 2
mit tuning-primer.sh beobachten wir nun das Verhalten von MySQL und fügen bei Bedarf in der my.cnf neue Variables hinzu oder ändern deren Werte. Eine Datenbank ist dynamisch d.h. Tabellen werden mit der Zeit grösser. Daher sollte man tuning-primer.sh regelmässig laufen lassen z.B. jede Woche.

Ausgabe Beispiel:
Code:
MEMORY USAGE
Max Memory Ever Allocated : 8 M #momentan benutzt
Configured Max Per-thread Buffers : 25 M
Configured Max Global Buffers : 4 M
Configured Max Memory Limit : 30 M #maximal nutzbar
Total System Memory : 1 G
Configured Max Memory Limit, also wieviel RAM man maximal MySQL zur Verfügung stellen will, errechnet sich vereinfacht aus key_buffer + (sort_buffer + read_buffer) x max_connections = RAM


Beispiel:

wir wollen MySQL 512 MB zur Verfügung stellen.

key_buffer = 128M + (read_buffer = 4M + sort_buffer = 4 M) x max_connections = 512 MB

128 + (4 + 4) x max_connections = 512

wir stellen die Formel nach max_connections um

max_connections = (RAM - key_buffer) : (read_buffer + sort_buffer)

max connections = (512 - 128) : (4 + 4)

max_connections = 384 : 8

max_connections = 48

benötigen wir mehr als 48 max_connections, müssen wir mehr RAM zur Verfügung stellen oder read_buffer und sort_buffer kleiner machen.

Regel

je weniger RAM zur Verfügung steht und je mehr max_connections benötigt werden, desto kleiner müssen read_buffer, sort_buffer u. key_buffer sein.

Geändert von noto (19.10.2009 um 20:58 Uhr)
Mit Zitat antworten