Consulta mysql de bloqueio intermitente

1

Eu tenho um grande problema em nosso servidor que hospeda cerca de dez sites magento. Eu faço todas as otimizações óbvias como APC para Opcode, APC para cache backend, ajuste de configurações innodb, compilação magento, etc.

Os sites carregam corretamente, mas algumas vezes, 5-6 vezes por dia, existem consultas MySQL “COMMIT” que bloqueiam o servidor MySQL e colocam um tempo muito longo para executar (> 500s). Então, com todas as novas conexões de entrada, o servidor está cheio com um erro "Muitas conexões".

Aqui uma captura de tela do Phpmyadmin quando o problema aparecer: link

My my.cnf (sem a primeira parte padrão)

#
# * Fine Tuning
#
key_buffer              = 384M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
#max_connections        = 100
table_cache            = 2048
#thread_concurrency     = 10
# 
# * Query Cache Configuration
#
query_cache_type        = 1
query_cache_limit       = 1M
query_cache_size        = 64M
# 
# * Logging and Replication
# 
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1

log_error                = /var/log/mysql/error.log

# Here you can see queries with especially long duration
log_slow_queries        = /var/log/mysql/mysql-slow.log
long_query_time = 5
#log-queries-not-using-indexes
# 
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id              = 1
#log_bin                        = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M

#
# * 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!
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 64M
innodb_flush_method=O_DIRECT

#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem


# limite à partir de laquelle les tables temporaires sont créées sur le DD
tmp_table_size=128M
max_heap_table_size=128M

Alguma idéia?

Obrigado pela sua ajuda.

    
por Sidhannowe 08.10.2012 / 11:43

1 resposta

1

Eu fiz muitas otimizações do MySQL com a ajuda do ótimo utilitário MySQLtuner e agora o problema se foi.

    
por 16.10.2012 / 10:21