mysql deixa de responder ao mesmo tempo todos os dias

4

Meu servidor é desativado todos os dias ao mesmo tempo. Eu descobri que o problema era devido ao mysql.

Eu tentei mostrar a lista de processos;  e descobriu que a base de dados estava entrando no modo de suspensão. Eu vi que havia muitas inserções na tabela log_url como 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                                                                                     |
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+

o reinício do mysql resolve o 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.

Eu também tentei procurar no log do mysql e encontrei o erro abaixo 1) a idade do último checkpoint é 9433987, InnoDB: que excede a capacidade do grupo de log 9433498.

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

Eu tentei novamente hoje e encontrei o banco de dados abaixo no modo de espera

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?

Eu ativei o log de consultas lentas 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 é possível encontrar qualquer motivo para o mysql deixar de responder todos os dias ao mesmo tempo

    
por Satyendra Mishra 03.09.2013 / 18:17

2 respostas

1

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

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

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

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

    
por 04.09.2013 / 11:18
0

O Magento é um tipo de recurso.

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

Estou dizendo isso porque se isso acontece todos os dias ao mesmo tempo, então o seu Magento lançando uma consulta, não é um problema do MySQL.

Pessoalmente, eu gostaria de

A:

1: Instale o Magento a partir do zero em uma VM

2: Crie um novo banco de dados no servidor MySQL

3: Veja se isso acontece

ou B:

1: Clone essa instalação do Magento para uma VM

2: Crie um novo servidor MySQL em uma VM

3: Veja se isso acontece

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

Se não for nenhum destes, o Apache PODERIA ser o culpado, mas é raro como acontece ao mesmo tempo.

    
por 16.04.2015 / 23:09