mysql перестает отвечать каждый день в одно и то же время

mysql перестает отвечать каждый день в одно и то же время

Мой сервер падает каждый день в одно и то же время. Я обнаружил, что проблема была в mysql.

Я попробовал show processlist; и обнаружил, что база данных переходит в спящий режим. Я увидел, что в таблице log_url было так много вставок, как показано ниже

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                                                                                     |
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+

перезапуск mysql решает мою проблему. Как я могу определить, что вызывает так много вставок и почему моя база данных переходит в спящий режим.

Я также попытался заглянуть в журнал MySQL и обнаружил следующую ошибку: 1) возраст последней контрольной точки — 9433987, InnoDB: что превышает емкость группы журналов — 9433498.

2) Не удалось использовать /var/log/mysql/mysql.log для ведения журнала (ошибка 2). Отключение ведения журнала для всего

Я попробовал еще раз сегодня и нашел следующую базу данных в спящем режиме

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

Кто-нибудь знает, как исправить проблему сбоя сайта из-за MySQL?

Я включил журнал медленных запросов и получил следующую информацию

/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

Все еще не могу найти причину, по которой MySQL перестает отвечать каждый день в одно и то же время.

решение1

Отредактируйте /etc/mysql/my.cnfконфигурацию и добавьте:

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

Первая строка включает журнал медленных запросов (не забудьте его повернуть), а вторая — указывает, сколько секунд как минимум должен длиться запрос, чтобы его можно было считать медленным.

После включения этой функции вы можете начать исследовать, какие запросы существенно замедляют работу вашего экземпляра MySQL.

решение2

Magento — своего рода пожиратель ресурсов.

В любом случае, насколько я помню, существуют плагины для Magento, которые оптимизируют не только сайт (PHP), но и фоновые процессы, такие как MySQL.

Я говорю это потому, что если это происходит каждый день в одно и то же время, то это Magento запускает запрос, а не проблема MySQL.

Лично я бы либо

А:

1: Установка Magento с нуля на виртуальной машине

2: Создайте новую базу данных на этом сервере MySQL

3: Посмотрим, произойдет ли это

или Б:

1: Клонируйте установку Magento на виртуальную машину

2: Создайте новый сервер MySQL на виртуальной машине

3: Посмотрим, произойдет ли это

У меня есть ощущение, что это будет B, так как MySQL сам по себе не делает никакой оптимизации такого рода из запаса. Хотя это может и не решить вашу проблему, это изолирует ее, если это проблема MySQL (маловероятно) или проблема Magento (скорее всего)

Если ни то, ни другое, виновником МОЖЕТ быть Apache, но это случается редко, так как происходит в одно и то же время.

Связанный контент