MySQL reagiert jeden Tag zur gleichen Zeit nicht mehr

MySQL reagiert jeden Tag zur gleichen Zeit nicht mehr

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.cnfdie 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.

verwandte Informationen