PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL-Server Optimierung



Shou
08.10.06, 16:26
Guten Abend,
ich wollte einmal fragen ob mir hier ein paar Tipps bezüglich MySQL-Optimierung gegeben werden kann.
Die Verwendung des Servers: Webserver mit Forum, Portal etc mit circa 20k Benutzer, Täglich gut 10k Unique-Visits.
Das Problem ist, dass MySQL-Abfragen recht lange dauern.
OS: Debian, 1gb Ram (Überlege ob ich auf 2gb aufstocken soll), Swap 2gb, MySQL-Version: 4.0.24.

Hier wäre meine my.cnf:

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking

old_passwords = 1

bind-address = 127.0.0.1

key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K

query_cache_limit = 1048576
query_cache_size = 16777216
query_cache_type = 1

log-bin = /var/log/mysql/mysql-bin.log

max_binlog_size = 104857600

skip-bdb

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]

[isamchk]
key_buffer = 16M

Vielen Dank schonmal!

Tomek
08.10.06, 16:33
Ich würde zuerst das Binary-Logging deaktivieren, wenn du keine MySQL-Replikation benutzt:

#log-bin = /var/log/mysql/mysql-bin.log
#max_binlog_size = 104857600 Bei 1 GB RAM würde auch ich den Query-Cache vergrößern:

query_cache_limit = 1M
query_cache_size = 32M
query_cache_type = 1
Auch würde ich noch folgendes verändern und hinzufügen:

key_buffer_size = 128M
myisam_sort_buffer_size = 64M
Es gibt aber noch mehr Möglichkeiten und Optionen. Hier sollte am besten noch jemand reinschauen, der mehr Kenne von MySQL hat. :)

marce
08.10.06, 16:37
"generell" zuerst mal - Cache hochsetzen - ein paar mögliche Werte hierzu gibt's in der originalen my.cnf von MySQL.

Logging - wenn nicht benötigt abschalten.

Ansonsten - vielleicht sind es ja die Abfragen selbst und nicht die Datenbank dahinter... Was sagt denn ein top?

Shou
08.10.06, 16:59
So hab das mal geändert.
Danke euch. Mal schaun ob nun das ganze besser läuft.

MiGo
09.10.06, 06:19
Und es hat sich noch nie eine Datenbank über mehr Ram beschwehrt. Wenns das also noch nicht bringt,

(Überlege ob ich auf 2gb aufstocken soll)
folge deinem Instinkt :)

marce
09.10.06, 06:27
... das wiederum würde ich von der Gesamtgröße des Projekts abhängig machen.

Wenn ich 100 MB html-Files habe und 200 MB Datenbank - was soll ich dann mit 2 GB Hauptspeicher? Das bekomme ich auch in 1 GB rein, inklussive aller Caches und sonstigem Gerümpel...

chrigu
09.10.06, 10:08
Hier noch ein guter Link zum Thema MySQL-Tuning..
-> http://www.databasejournal.com/features/mysql/article.php/10897_1402311_3

Gruss,
Chrigu

Tomek
10.10.06, 18:17
Ein schlecht konfigurierter MySQL-Server wird nicht zwangsläufig von mehr Arbeitsspeicher profitieren...