16 Núcleos 12 GB RAM Configuração MySql Dedicada

5

Eu tenho um servidor Mysql dedicado de 16 núcleos de 12 GB de RAM que está funcionando muito mal desde que eu configurei para um servidor de 16 GB e eu acho que isso explica porque o site agora leva mais de 500 segundos para renderizar uma única página . Estou usando o memcached para armazenar em cache os arquivos e usar o InnoDB como mecanismo de banco de dados.

#8 core/16GB config stolen from http://groups.drupal.org/node/28830

back_log                        = 50
max_connect_errors              = 9999999
table_cache                     = 5000
binlog_cache_size               = 1M
max_heap_table_size             = 128M
sort_buffer_size                = 500K
join_buffer_size                = 500K
thread_cache_size               = 100
thread_concurrency              = 16
query_cache_size                = 512M
query_cache_limit               = 8M
query_cache_min_res_unit        = 2K
thread_stack                    = 192K
tmp_table_size                  = 384M
long_query_time                 = 2

# *** INNODB Specific options ***

innodb_additional_mem_pool_size = 80M
innodb_buffer_pool_size         = 12G
innodb_file_io_threads          = 4
innodb_thread_concurrency       = 16
innodb_log_buffer_size          = 20M
innodb_log_file_size            = 800M
innodb_log_files_in_group       = 3
innodb_max_dirty_pages_pct      = 90
innodb_lock_wait_timeout        = 120
innodb_file_per_table           = 1

Qualquer ajuda sobre como otimizar a configuração do my.cnf, ou mesmo a criação de um novo, seria muito apreciada.

    
por kornesh 14.08.2011 / 02:48

1 resposta

3

A única maneira que uma configuração para 16GB em uma caixa de 12GB seria um problema é se o MySQL está tentando usar mais recursos de memória do que o sistema. A maioria dos servidores MySQL está configurada para usar muita memória, mas isso não faz com que eles rodem mal desde o primeiro dia. Se a caixa não está trocando e o MySQL está ficando OOM morto, não é o fato de que é uma configuração para uma caixa de 16GB em uma caixa de 12GB.

Se o problema estiver no lado do MySQL, você pode começar verificando a lista de processos com SHOW PROCESSLIST; . Se levar 500 segundos, você definitivamente verá algumas consultas suspensas. Se as consultas que estão sendo executadas estão sendo truncadas, você pode executar SHOW FULL PROCESSLIST; .

Também sugiro ativar o registro lento de consultas . Depois de identificar qualquer problema, você pode usar a declaração EXPLAIN para ver se suas consultas estão usando os índices que você tem.

Se você isolar o problema no banco de dados, ainda haverá muitas variáveis. O primeiro passo é descobrir quais consultas estão indo devagar e partir daí. Você provavelmente descobrirá que melhorar as consultas proporcionará o maior aprimoramento em relação a qualquer alteração nas configurações do servidor.

    
por 15.08.2011 / 19:58