MySQL config para drupal

2

Estou executando o MySQL 5.0.75 no Ubuntu em uma máquina dual core com 8 GB de RAM. Estou executando um site Drupal 5 e Drupal 6 do banco de dados.

Estou certo de que a minha configuração do MySQL não é a ideal, mas estou querendo saber se existe alguma fruta que possa ser resolvida. Aqui está o coração da configuração atual.

Nova configuração atual (original na parte inferior). Esta é uma máquina dedicada, btw:

key_buffer                      = 2G
innodb_buffer_pool_size         = 6G
innodb_additional_mem_pool_size = 16M
max_allowed_packet              = 16M
sort_buffer_size                = 128M
myisam_sort_buffer_size         = 128M
read_buffer_size                = 128M
join_buffer_size                = 128M
read_rnd_buffer_size            = 512M

thread_stack                    = 192K
thread_cache_size               = 10
thread_concurrency              = 8
innodb_thread_concurrency       = 8

table_cache                     = 2048
query_cache_limit               = 2M
query_cache_size                = 128M

Antigo:

key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
query_cache_limit       = 1M
query_cache_size        = 16M
expire_logs_days        = 10
max_binlog_size         = 100M
skip-federated
default-storage-engine  = InnoDB
default-character-set   = utf8
default-collation       = utf8_general_ci
    
por Jason Christa 22.06.2009 / 23:08

2 respostas

3

Parece que você está usando o InnoDB como seu tipo de mecanismo de banco de dados principal, mas sua configuração não possui opções de ajuste de configuração do InnoDB, o que significa que você está usando os padrões. Esses padrões, fora da caixa, são dimensionados para uma máquina de 8Mb!

Eu recomendo essas configurações como base e trabalho de lá

innodb_file_per_table
set-variable = innodb_buffer_pool_size=2G
set-variable = innodb_log_files_in_group=4
set-variable = innodb_log_file_size=128M
set-variable = thread_cache_size=10
set-variable = table_cache=512
set-variable = query_cache_size=8M

Você não disse se o site do php estava compartilhando a mesma máquina que o seu servidor db, então você terá que ter cuidado para que o MySQL não consuma tanta RAM física que faça com que a máquina troque.

Também recomendo que você adicione essas configurações a consultas e consultas lentas e lentas com um plano de consulta ruim.

log_slow_queries
log-queries-not-using-indexes
set-variable = long_query_time=1
    
por 23.06.2009 / 03:58
2

Você está usando o InnoDB para que seu innodb_buffer_pool seja tão grande quanto você pode fazer isso ( key_buffer é o equivalente para MyISAM). 6GB deve ser um valor bom em uma máquina de 8GB.

Se você estiver fazendo muitas consultas complexas, sort_buffer e tmp_table_size também podem valer a pena aumentar.

    
por 23.06.2009 / 01:42