ich würde gerne meinen mysql tunen. Um mir tipps geben zu können bekommt ihr hier erstmal anständig input.
Auf dem Server läuft ein Apache 1.3, postfix, mysql, confixx (was nicht genutzt wird) und proftpd der auch net genutzt wird. Besucher auf der Seite sind ca. 7000 pro Tag.
Das ist ein Celeron 2.4 GHz mit 1GB Ram.
load average: 0.13, 0.27, 0.32
Die Datenbank die drauf läuft ist folgendermassen:
Engine: Myisam
Anz. Tabellen: 81
Zeilen: 7.800.000
Datenlänge: 400MB
Indexlänge: 60MB
Die Werte sind minimal gerudet nach oben.
Mysql Version:
Server version 4.0.24_Debian-10sarge2
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Threads: 3 Questions: 11477 Slow queries: 0 Opens: 219 Flush tables: 1 Open tables: 213 Queries per second avg: 23.615
----------------------------------------------------------------------
Soweit läuft eigentlich alles ganz gut. Die Webseite auf dem Server wird fix geladen. Nur wenns mal etwas komplizierte Abfragen sind zwecks Statistik doer so dann brauch der ein bisschen aber das ist auch verkraftbar.
Was richtig nervt ist folgendes:
Ich habe noch 5 weitere Server auf denen nur dateien liegen. Ist man also auf der Webseite und drückt auf "Download" dann brauch der 30 Sekunden bis der das File aus der DB gesucht hat und dann mit dem DL anfängt. Je größer die DB wird desto auffälliger ist das.
Ich war nun bissel im netz unterwegs und habe mein my.cnf mal angepasst:
Code: Alles auswählen
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
# Here is entries for some specific programs
# The following values assume you have at least 32M ram
# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
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
#skip-networking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
#bind-address 217.20.122.131
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
#
# * Query Cache Configuration
#
query_cache_limit = 8M
query_cache_size = 256M
query_cache_type = 1
max_connections = 500
max_user_connections = 100
interactive_timeout=60
wait_timeout=60
connect_timeout=30
thread_cache_size=128
join_buffer=1M
table_cache=1024
read_buffer_size=1M
sort_buffer_size=2M
max_connect_errors=100
thread_concurrency=2
myisam_sort_buffer_size=64M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
#log = /var/log/mysql.log
#log = /var/log/mysql/mysql.log
#
# Error logging goes to syslog. This is a Debian improvement :)
#
# Here you can see queries with especially long duration
#log-slow-queries = /var/log/mysql/mysql-slow.log
#
# The following can be used as easy to replay backup logs or for replication.
server-id = 1
#log-bin = /var/log/mysql/mysql-bin.log
# See /etc/mysql/debian-log-rotate.conf for the number of files kept.
max_binlog_size = 104857600
#binlog-do-db = include_database_name
#binlog-ignore-db = include_database_name
#
# * BerkeleyDB
#
# The use of BerkeleyDB is now discouraged and support for it will probably
# cease in the next versions.
skip-bdb
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Feature
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# If you want to enable SSL support (recommended) read the manual or my
# HOWTO in /usr/share/doc/mysql-server/SSL-MINI-HOWTO.txt.gz
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
[mysqldump]
quick
#quote-names
max_allowed_packet = 16M
[mysql]
no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
Wenn ihr noch weitere Werte braucht dann sagt bitte bescheid.
Vielen lieben Dank
Euer
Sun