jak znaleźć przyczynę skoku io

0

Codziennie mniej więcej w tym samym czasie użycie IO na serwerze, na którym nasz slave mysql wzrasta do 100%.

Zainstalowałem skrypt, który pobiera informacje IO co pięć minut, dzięki czemu mogę dowiedzieć się, dlaczego tak się dzieje.

Do tej pory widzę, że proces mysql powoduje ten skok, ale nie mogę dowiedzieć się, co faktycznie robi mysql, aby to spowodować.

Za pomocą pidstatotrzymuję:

Linux 3.2.0-4-amd64 (-db03)        09/03/2014      _x86_64_        (24 CPU)
03:30:05 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
03:30:20 AM       418      0.00      5.06      0.00  jbd2/sda1-8
03:30:20 AM     31124    878.88  12179.08      0.00  mysqld

03:30:20 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
03:30:35 AM       418      0.00      1.07      0.00  jbd2/sda1-8
03:30:35 AM     31124   1124.80  12924.00      0.00  mysqld

Average:          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
Average:          418      0.00      3.07      0.00  jbd2/sda1-8
Average:        31124   1001.80  12551.42      0.00  mysqld

Za pomocą pt-mysql-summaryotrzymuję:

# Processlist ################################################

  Command                        COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
  Connect                               2       2   3500000   3500000
  Query                                 1       1         0         0
  Sleep                                 2       0        15         8

  User                           COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
  monitoring                            2       0         0         0
  root                                  1       1         0         0
  system user                           2       2   3500000   3500000

  Host                           COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
                                        2       2   3500000   3500000
  localhost                             3       1         0         0

  db                             COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
  flats_production                      2       1       600       600
  NULL                                  3       2   3500000   3500000

  State                          COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
                                        2       0         0         0
  init                                  1       1         0         0
  updating                              1       1       600       600
  Waiting for master to send eve        1       1   3500000   3500000

Ale show full processlistnie pokazuje nic nienormalnego.

Masz pomysł, jak mogę to debugować?

simao
źródło

Odpowiedzi: