Попинайте конфиг Мускуля пжлс.

D
На сайте с 28.06.2008
Offline
1101
1089

Есть отдельный впс (2 ядра, 2 гига опреативки, диски SSD) на котором крутится только мускуль (4 базы).

Суммарно:

[--] Data in InnoDB tables: 307M (Tables: 298)
[--] Data in MyISAM tables: 856M (Tables: 125)

есть нагруженные таблицы как одного, так и другого типа.

Я далеко не админ и конфиг настраивал сам по мануалам из сети, явно где-то накрутил не правильно. Сейчас все хорошо работает, но тюнер выдает


[!!] Maximum possible memory usage: 6.9G (349% of installed RAM)

Вот сам конфиг

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

[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
lc-messages-dir = /usr/share/mysql
skip-external-locking
low-priority-updates

# * Fine Tuning
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 40

# This replaces the startup script and checks MyISAM tables if needed
myisam-recover = BACKUP
table_open_cache = 2048
tmp_table_size = 256M
max_heap_table_size = 256M
thread_concurrency = 6
key_buffer_size = 24M
join_buffer_size = 8M
sort_buffer_size = 8M
read_rnd_buffer_size = 24M

# * Query Cache Configuration

query_cache_limit = 6M
query_cache_size = 128M

log_error = /var/log/mysql/error.log
slow_query_log_file = /var/log/mysql/mysql-slow.log
slow_query_log = 1
long_query_time = 1
expire_logs_days = 10
max_binlog_size = 100M

# * InnoDB
innodb_flush_method = O_DIRECT
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency = 4
innodb_file_per_table = 1
table_open_cache = 1024
innodb_open_files = 1024

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[isamchk]
key_buffer = 16M

Нужно ли что-то подкрутить?

ВОт стата мунина за месяц

png cpu-month.png
png if_eth0-month.png
png load-month.png
png memory-month.png
png mysql_queries-month.png
P
На сайте с 16.03.2009
Offline
144
#1

Основные параметры: key_buffer_size, innodb_buffer_pool_size.

[--] Data in InnoDB tables: 307M (Tables: 298)
[--] Data in MyISAM tables: 856M (Tables: 125)

Говорит о том, что было бы неплохо увеличить

key_buffer_size = 1G
innodb_buffer_pool_size = 384M

Но так как у вас 2GB RAM, то key_buffer_size придется сделать меньше => например 256M.

Много памяти уходит на connections. Не приводит к росту производительности.

join_buffer_size = 8M
sort_buffer_size = 8M
read_rnd_buffer_size = 24M

Думаю будет оптимально увеличить join_buffer_size до 2M, а остальное оставить по дефолту.

Дубли.

table_open_cache = 2048
...
table_open_cache = 1024

query cache => суть в том, чтобы закешировать как можно больше запросов.

Чаще всего делают 128K, 256K, 512K ... 1M.

Если размер > 1~2M, то результат лучше сохранить в memcached или redis.

query_cache_limit = 1M
query_cache_size = 128M

Размер innodb_log_file_size => можно уменьшить 128M => 12M.

Аналогично tmp_table_size, max_heap_table_size - у вас мало памяти для 256M.

Просто выставить большое значение != получить рост производительности.

В итоге получается my.cnf => http://pastebin.com/raw/3sfbgPdY

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий