mysql deja de responder a la misma hora todos los días

mysql deja de responder a la misma hora todos los días

Mi servidor se cae todos los días a la misma hora. Descubrí que el problema se debía a mysql.

Intenté mostrar la lista de procesos; y descubrió que la base de datos estaba entrando en modo de suspensión. Vi que había tantas inserciones en la tabla log_url como se muestra a continuación

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 mysql resuelve mi problema. ¿Cómo puedo detectar qué está causando tantas inserciones y por qué mi base de datos entra en modo de suspensión?

También intenté buscar en el registro de MySQL y encontré el siguiente error 1) la antigüedad del último punto de control es 9433987, InnoDB: que excede la capacidad del grupo de registros 9433498.

2) No se pudo usar /var/log/mysql/mysql.log para iniciar sesión (error 2). Desactivar el inicio de sesión para siempre

Lo intenté nuevamente hoy y encontré la siguiente base de datos en modo de suspensión.

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

¿Alguien sabe cómo puedo solucionar el problema de bloqueo del sitio debido a MySQL?

Habilité el registro de consultas lento y obtuve los detalles a continuación

/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

Todavía no puedo encontrar ninguna razón por la cual mysql deja de responder todos los días a la misma hora

Respuesta1

Edite /etc/mysql/my.cnfla configuración y agregue:

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

La primera fila habilita el registro de consultas lentas (recuerde rotarlo) y la segunda trata sobre cuántos segundos como mínimo debe tomar una consulta para ser considerada lenta.

Una vez habilitado esto, puede comenzar a investigar cuáles son las consultas que ralentizan sensiblemente su instancia de MySQL.

Respuesta2

Magento es una especie de consumidor de recursos.

De todos modos, por lo que recuerdo, existen complementos para Magento que optimizan no solo el sitio (PHP), sino también procesos en segundo plano como MySQL.

Digo esto porque si sucede todos los días exactamente a la misma hora, entonces Magento inicia una consulta, no es un problema de MySQL.

Personalmente, yo tampoco

A:

1: Instale Magento desde cero en una VM

2: crea una nueva base de datos en ese servidor MySQL

3: ver si sucede

o B:

1: clonar esa instalación de Magento en una VM

2: crear un nuevo servidor MySQL en una VM

3: ver si sucede

Tengo la sensación de que será B ya que MySQL no realiza ningún tipo de optimización de este tipo desde el stock. Si bien es posible que esto no resuelva su problema, lo aislará si se trata de un problema de MySQL (poco probable) o de Magento (muy probable).

Si no es ninguna de estas cosas, Apache PODRÍA ser el culpable, pero es raro, ya que sucede exactamente al mismo tiempo.

información relacionada