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.cnf
la 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.