mysql deixa de responder no mesmo horário todos os dias

mysql deixa de responder no mesmo horário todos os dias

Meu servidor fica inativo todos os dias no mesmo horário. Descobri que o problema era devido ao mysql.

Eu tentei mostrar lista de processos; e descobri que o banco de dados estava entrando no modo de suspensão. Eu vi que havia tantas inserções na tabela log_url conforme mostrado abaixo

mysql> show processlist;
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
| Id    | User          | Host      | db               | Command | Time | State        | Info                                                                                                 |
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
| 72962 | sonicsense_db | localhost | sonicsense_db    | Query   |    1 | Sending data | SELECT `log_url`.* FROM `log_url` LIMIT 2381 OFFSET 2992917                                          |
| 74069 | sonicsense_db | localhost | sonicsense_db    | Query   |    4 | Updating     | UPDATE `cron_schedule` SET `job_code` = 'captcha_delete_expired_images', `status` = 'error', `messag |
| 74073 | sonicsense_db | localhost | sonicsense_db    | Query   |   51 | update       | INSERT INTO `log_url` (`url_id`, `visitor_id`, `visit_time`) VALUES ('6528425', '4646727', '2013-08- |
| 74074 | sonicsense_db | localhost | sonicsense_wp_db | Sleep   |   52 |              | NULL                                                                                                 |
| 74077 | sonicsense_db | localhost | sonicsense_db    | Query   |   41 | update       | INSERT INTO `log_url` (`url_id`, `visitor_id`, `visit_time`) VALUES ('6528426', '4646728', '2013-08- |
| 74078 | sonicsense_db | localhost | sonicsense_wp_db | Sleep   |   42 |              | NULL                                                                                                 |
| 74079 | sonicsense_db | localhost | sonicsense_db    | Query   |   36 | update       | INSERT INTO `log_url` (`url_id`, `visitor_id`, `visit_time`) VALUES ('6528427', '4646729', '2013-08- |
| 74080 | sonicsense_db | localhost | sonicsense_wp_db | Sleep   |   37 |              | NULL                                                                                                 |
| 74081 | sonicsense_db | localhost | sonicsense_db    | Query   |   34 | update       | INSERT INTO `log_url` (`url_id`, `visitor_id`, `visit_time`) VALUES ('6528428', '4646730', '2013-08- |
| 74082 | sonicsense_db | localhost | sonicsense_db    | Query   |   31 | update       | INSERT INTO `log_url` (`url_id`, `visitor_id`, `visit_time`) VALUES ('6528429', '4646731', '2013-08- |
| 74084 | sonicsense_db | localhost | sonicsense_wp_db | Sleep   |   32 |              | NULL                                                                                                 |
| 74085 | sonicsense_db | localhost | sonicsense_db    | Query   |   30 | update       | INSERT INTO `log_url` (`url_id`, `visitor_id`, `visit_time`) VALUES ('6528430', '4646732', '2013-08- |
| 74086 | sonicsense_db | localhost | sonicsense_db    | Query   |   31 | Updating     | UPDATE `catalogsearch_query` SET `query_text` = 'PreSonus', `num_results` = '154', `popularity` = '3 |
| 74087 | sonicsense_db | localhost | sonicsense_wp_db | Sleep   |   31 |              | NULL                                                                                                 |
| 74088 | sonicsense_db | localhost | sonicsense_db    | Query   |   20 | update       | INSERT INTO `log_url` (`url_id`, `visitor_id`, `visit_time`) VALUES ('6528431', '4646734', '2013-08- |
| 74089 | sonicsense_db | localhost | sonicsense_wp_db | Sleep   |   20 |              | NULL                                                                                                 |
| 74090 | sonicsense_db | localhost | sonicsense_db    | Query   |   12 | update       | INSERT IGNORE INTO core_cache_tag (tag, cache_id) VALUES ('MAGE_cache_DEFAULT', 'MAGE_cache_LAYOUT_1 |
| 74091 | sonicsense_db | localhost | sonicsense_db    | Query   |   10 | update       | INSERT INTO `log_url` (`url_id`, `visitor_id`, `visit_time`) VALUES ('6528432', '4646736', '2013-08- |
| 74092 | sonicsense_db | localhost | sonicsense_wp_db | Sleep   |   11 |              | NULL                                                                                                 |
| 74093 | sonicsense_db | localhost | sonicsense_db    | Query   |    9 | update       | INSERT INTO `log_url` (`url_id`, `visitor_id`, `visit_time`) VALUES ('6528433', '4646737', '2013-08- |
| 74094 | sonicsense_db | localhost | sonicsense_wp_db | Sleep   |   10 |              | NULL                                                                                                 |
| 74095 | sonicsense_db | localhost | NULL             | Query   |    0 | NULL         | show processlist                                                                                     |
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+

reiniciar o mysql resolve meu problema. Como posso detectar o que está causando tantas inserções e por que meu banco de dados está entrando no modo de suspensão.

Também tentei consultar o log do mysql e encontrei abaixo o erro 1) a idade do último ponto de verificação é 9433987, InnoDB: que excede a capacidade do grupo de logs 9433498.

2) Não foi possível usar /var/log/mysql/mysql.log para registro (erro 2). Desativando o logon por completo

Tentei novamente hoje e encontrei o banco de dados abaixo no modo de suspensão

63211   sonicsense_db   localhost       sonicsense_wp_db        Sleep   49              NULL
63215   sonicsense_db   localhost       sonicsense_wp_db        Sleep   37              NULL
63217   sonicsense_db   localhost       sonicsense_wp_db        Sleep   37              NULL
63219   sonicsense_db   localhost       sonicsense_wp_db        Sleep   36              NULL
63221   sonicsense_db   localhost       sonicsense_wp_db        Sleep   16              NULL

Alguém sabe como posso corrigir o problema de travamento do site devido ao mysql.

Ativei o log de consulta lenta e recebi os detalhes abaixo

/usr/libexec/mysqld, Version: 5.1.69-log (Source distribution). started with:
Tcp port: 0  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
/usr/libexec/mysqld, Version: 5.1.69-log (Source distribution). started with:
Tcp port: 0  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
/usr/libexec/mysqld, Version: 5.1.69-log (Source distribution). started with:
Tcp port: 0  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
/usr/libexec/mysqld, Version: 5.1.69-log (Source distribution). started with:
Tcp port: 0  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument

Ainda não consigo encontrar nenhuma razão pela qual o mysql deixa de responder todos os dias no mesmo horário

Responder1

Edite /etc/mysql/my.cnfa configuração e adicione:

    log_slow_queries = /var/log/mysql/mysql-slow.log
    long_query_time  = 2

A primeira linha ativa o log de consulta lenta (lembre-se de girá-lo) e a segunda é sobre quantos segundos, no mínimo, uma consulta deve levar para ser considerada lenta.

Uma vez habilitado isso, você pode começar a investigar quais são as consultas que retardam sensivelmente sua instância do MySQL.

Responder2

Magento é uma espécie de consumidor de recursos.

De qualquer forma, pelo que me lembro, existem plugins para Magento que otimizam não só o site (PHP), mas também processos em segundo plano como o MySQL.

Estou dizendo isso porque se isso acontecer todos os dias exatamente no mesmo horário, então o Magento está lançando uma consulta, não é um problema do MySQL.

Pessoalmente, eu também

A:

1: Instale o Magento do zero em uma VM

2: Crie um novo banco de dados nesse servidor MySQL

3: Veja se isso acontece

ou B:

1: Clone a instalação do Magento em uma VM

2: Faça um novo servidor MySQL em uma VM

3: Veja se isso acontece

Tenho a sensação de que será B, pois o próprio MySQL não faz nenhum tipo de otimização desse tipo em estoque. Embora isso possa não resolver o seu problema, irá isolá-lo se for um problema do MySQL (improvável) ou um problema do Magento (provavelmente)

Se não for nenhum desses, o Apache PODERIA ser o culpado, mas é raro, pois acontece exatamente ao mesmo tempo.

informação relacionada