Назад | Перейти на главную страницу

как найти причину всплеска io

Каждый день в вокруг В то же время использование ввода-вывода на сервере, где находится наш подчиненный сервер mysql, достигает 100%.

Я установил сценарий, который принимает информацию о вводе-выводе каждые пять минут, чтобы я мог выяснить, почему это происходит.

Пока я вижу, что процесс mysql вызывает этот всплеск, но я не могу понять, что на самом деле делает mysql, чтобы вызвать это.

С помощью pidstat Я получил:

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

С помощью pt-mysql-summary Я получил:

# 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

Но show full processlist ничего ненормального не показывает.

Есть идеи, как я могу это отладить?

Возьмите pt-ioprofile и проверьте, что mysql читает и пишет. http://www.percona.com/doc/percona-toolkit/2.1/pt-ioprofile.html