Mein Server fällt jeden Tag zur gleichen Zeit aus. Ich habe herausgefunden, dass das Problem an MySQL liegt.
Ich habe versucht, die Prozessliste anzuzeigen und festgestellt, dass die Datenbank in den Ruhemodus wechselte. Ich habe gesehen, dass es in der Tabelle log_url so viele Einfügungen gab, wie unten gezeigt
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 |
+-------+---------------+-----------+------------------+---------+------+--------------+------------------------------------------------------------------------------------------------------+
Ein Neustart von MySQL löst mein Problem. Wie kann ich feststellen, was die Ursache für so viele Einfügungen ist und warum meine Datenbank in den Ruhemodus wechselt?
Ich habe auch versucht, in das MySQL-Protokoll zu schauen und habe den folgenden Fehler gefunden: 1) Das Alter des letzten Prüfpunkts beträgt 9433987, InnoDB: Dies überschreitet die Protokollgruppenkapazität 9433498.
2) /var/log/mysql/mysql.log konnte nicht für die Protokollierung verwendet werden (Fehler 2). Das Deaktivieren der Protokollierung für die gesamte
Ich habe es heute noch einmal versucht und die folgende Datenbank im Ruhemodus gefunden.
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
Weiß jemand, wie ich das Site-Absturzproblem aufgrund von MySQL beheben kann?
Ich habe das Protokoll für langsame Abfragen aktiviert und die folgenden Details erhalten
/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
Ich kann immer noch keinen Grund finden, warum MySQL jeden Tag zur gleichen Zeit nicht mehr reagiert
Antwort1
Bearbeiten Sie /etc/mysql/my.cnf
die Konfiguration und fügen Sie hinzu:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
Die erste Zeile aktiviert das Protokoll für langsame Abfragen (denken Sie daran, es zu rotieren), und die zweite gibt an, wie viele Sekunden eine Abfrage mindestens dauern muss, damit sie als langsam gilt.
Sobald Sie dies aktiviert haben, können Sie untersuchen, welche Abfragen Ihre MySQL-Instanz spürbar verlangsamen.
Antwort2
Magento ist eine Art Ressourcenfresser.
Wie dem auch sei, soweit ich mich erinnere, gibt es Plugins für Magento, die nicht nur die Site (PHP), sondern auch Hintergrundprozesse wie MySQL optimieren.
Ich sage das, weil, wenn es jeden Tag zur exakt gleichen Zeit passiert, es sich um Magento handelt, das eine Abfrage startet, und nicht um ein MySQL-Problem.
Persönlich würde ich entweder
A:
1: Magento von Grund auf auf einer VM installieren
2: Erstellen Sie eine neue Datenbank auf diesem MySQL-Server
3: Sehen Sie, ob es passiert
oder B:
1: Klonen Sie die Magento-Installation auf eine VM
2: Erstellen Sie einen neuen MySQL-Server in einer VM
3: Sehen Sie, ob es passiert
Ich habe das Gefühl, dass es B sein wird, da MySQL selbst keine Optimierung dieser Art von Grund auf durchführt. Dies löst Ihr Problem zwar möglicherweise nicht, isoliert es aber, ob es sich um ein MySQL-Problem (unwahrscheinlich) oder ein Magento-Problem (höchstwahrscheinlich) handelt.
Wenn keines von beiden zutrifft, KÖNNTE Apache der Übeltäter sein, aber das kommt selten vor, da die Probleme gleichzeitig auftreten.