Vor kurzem hat einer unserer Server nicht mehr genügend Speicher und ist abgestürzt. Nach Durchsicht der munin
Diagramme scheint die einzige Metrik (außer der Speichernutzung), die kurz vor dem Absturz ihren Höhepunkt erreicht hat, die zu sein MySQL throughput
. Wir hatten jedoch einen entsprechenden Anstieg erwartet, von MySQL queries
dem dies nicht der Fall war:
Wir möchten herausfinden, was diesen Spitzenwert im MySQL-Durchsatz verursacht hat. Hier ist die Liste der Bin-Protokolle vom Absturz:
101M Apr 17 01:27 drupal_master-bin.001270
106M Apr 17 03:00 drupal_master-bin.001271
101M Apr 17 04:05 drupal_master-bin.001272
104M Apr 17 05:53 drupal_master-bin.001273
104M Apr 17 06:39 drupal_master-bin.001274
101M Apr 17 07:02 drupal_master-bin.001275
104M Apr 17 07:22 drupal_master-bin.001276 # 100M filled up in 1 min
106M Apr 17 07:23 drupal_master-bin.001277
101M Apr 17 07:33 drupal_master-bin.001278
101M Apr 17 07:43 drupal_master-bin.001279
104M Apr 17 07:46 drupal_master-bin.001280
102M Apr 17 08:29 drupal_master-bin.001281
102M Apr 17 08:46 drupal_master-bin.001282
105M Apr 17 08:54 drupal_master-bin.001283
13M Apr 17 09:26 drupal_master-bin.001284 # crash of server around 09:50
# prior to crashing load went very high (we saw 45) and server was extremely slow (few min delay when typing in an SSH session)
101M Apr 17 10:54 drupal_master-bin.001285 # server up again, nothing wrong since then
Ich habe nach Tools gesucht, um diese Bin-Protokolle zu analysieren. Bisher habe ich gefunden:
binlog-analyze.pl : gibt mir einen Überblick über die von Anfragen bearbeitet, mit Aufschlüsselung auf select
, insert
, update
.. (FYI ersetzt ich select into
mit select
in dem Skript , wie es falsch schien).
$ mysqlbinlog /path/to/bin.log | binlog-analyze.pl -v
pt-query-Digest : Gibt mir Statistiken zur Abfragegröße (min, max, avg ...). Dieses Dienstprogramm bietet viele Optionen, aber ich weiß nicht, wonach ich suchen soll.
$ mysqlbinlog /path/to/bin.log | pt-query-digest
Wir möchten herausfinden, welche Abfragen zu einem Anstieg der MySQL-Ausgabe geführt haben.
Kann jemand Anweisungen geben, wie die MySQL-Bin-Protokolle überprüft werden, um Abfragen zu identifizieren, die zu einem plötzlichen Anstieg des MySQL-Durchsatzes führen?
Haben Sie das Tauschen verboten? Andernfalls wird MySQL (kläglich) langsamer, stürzt aber nicht ab. Ein Austausch sollte vermieden, aber nicht verhindert werden.
Haben Sie einige Tunables zu hoch eingestellt? Siehe http://mysql.rjweb.org/doc.php/memory
quelle