Мой сервер отключается каждый день в одно и то же время. Я обнаружил, что проблема возникла из-за mysql.
Я попробовал показать список процессов; и обнаружил, что база данных переходит в спящий режим. Я видел, что в таблице 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 перестает отвечать каждый день в одно и то же время
редактировать /etc/mysql/my.cnf
конфигурации и добавить:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
Первая строка включает журнал медленных запросов (не забудьте его повернуть), а вторая - о том, сколько секунд как минимум должен занять запрос, чтобы он считался медленным.
После включения этого параметра вы можете начать исследовать, какие запросы существенно замедляют работу вашего экземпляра MySQL.
Magento - это своего рода пожиратель ресурсов.
В любом случае, насколько я помню, есть плагины для Magento, которые оптимизируют не только сайт (PHP), но и фоновые процессы, такие как MySQL.
Я говорю это, потому что если это происходит каждый день в одно и то же время, тогда его Magento запускает запрос, а не проблема MySQL.
Лично я бы тоже
А:
1. Установите Magento с нуля на виртуальную машину
2: Создайте новую базу данных на этом сервере MySQL
3: Посмотрите, произойдет ли это
или B:
1: Клонировать эту установку Magento на виртуальную машину
2: Создайте новый сервер MySQL на виртуальной машине
3: Посмотрите, произойдет ли это
У меня есть ощущение, что это будет B, поскольку сам MySQL не выполняет никаких оптимизаций такого рода на складе. Хотя это может не решить вашу проблему, оно изолирует ее, если это проблема MySQL (маловероятно) или проблема Magento (скорее всего).
Если ни то, ни другое, Apache МОЖЕТ быть виновником, но это редко, так как это происходит в одно и то же время.