PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tuning mysql mit innodb und myisam



meinereinerseiner
13.04.11, 20:55
Hallo,

mal ne Frage zum Thema mysql Tuning.
Ich habe einen gelegentlich relativ gut besuchten Webserver.
Die DB hat lediglich knapp 200MB. mytop liefert so um die 2500 q/sec und keine slow querys. Die Daten liegen auf einem externen Raid0.

Vielleicht fällt ja jemanden der ein oder andere Parameter auf, welcher noch zu optimieren ist, bzw. welcher in meiner config unsinnig ist.
Das Focus soll zu 80% auf der lese performance liegen. DIe Kiste ist ein Intel Quadcore mit 2,8 Ghz und 8 GB Ram.

die my.cnf:

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
datadir=/var/lib/mysql
user=mysql
old_passwords=1
sync_binlog = 1
binlog_cache_size = 1M
max_binlog_size = 10M
slave_compressed_protocol = 1
delay-key-write = ALL
skip-locking
skip-name-resolve
skip-external-locking
skip-show-database
safe-user-create = 1
default_table_type = INNODB
transaction_isolation = REPEATABLE-READ
max_allowed_packet = 16M
max_heap_table_size = 64M
tmp_table_size = 64M
key_buffer_size = 384M
sort_buffer_size = 8M
join_buffer_size = 8M
read_buffer_size = 8M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 32M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 1G
myisam_max_extra_sort_file_size = 1G
myisam_repair_threads = 1
thread_cache_size = 8
table_cache = 512
query_cache_type = 1
query_cache_size = 32M
query_cache_limit = 2M
thread_concurrency = 8
local-infile = 0
long_query_time = 3
log_slow_queries
log_long_format
myisam_recover
innodb_thread_concurrency = 8
innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
innodb_data_home_dir = /var/lib/mysql
innodb_log_arch_dir = /var/lib/mysql
innodb_log_group_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:400M;ibdata2:10M:autoextend
innodb_log_file_size = 50M
innodb_log_buffer_size = 8M
innodb_log_files_in_group = 2
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 60
server-id = 1
max_connections = 500
wait_timeout=68400
interactive_timeout = 68400


[safe_mysqld]
err-log=/var/lib/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer_size = 4M
write_buffer_size = 4M

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer_size = 4M
write_buffer_size = 4M

[mysqlhotcopy]
interactive-timeout

bin für alle vorschläge offen.

thx,
tom

marce
14.04.11, 07:11
auf den ersten Blick könntest Du die Caches generell nach oben setzen - ob es wirklich sinnvoll ist kann man aber so nicht sagen - da ist eine lange Reihe von "beobachten, auswerten, optimieren, und wieder von vorne" angesagt...

Such mal nach dem Tuning-Primer-Script, lass das laufen und wastel Dich durch...

meinereinerseiner
14.04.11, 08:12
Hi,

das Tuning-Primer.sh kannte ich noch garnicht. nen paar sachen meckert er an, werd da am we mal spielen.

thx,
tom

cane
14.04.11, 18:44
DB eine Woche laufen lassen und dann auswerten mittels:

http://mysqltuner.pl/

mfg
cane