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

Linux: как определить, выполняет ли приложение последовательный или случайный дисковый ввод-вывод?

Всем известно, что базы данных, как правило, выполняют множество небольших случайных операций ввода-вывода, в то время как такие объекты с большими данными, как Kafka, как правило, выполняют большие последовательные операции ввода-вывода, но если я подхожу к этому как системный администратор, не делая предположений, как мне определить, что выполняется? приложение делает в моей системе, или вообще видит ли моя система? Не зная, как написано приложение, как определить, работает ли оно в основном последовательный или случайный Ввод-вывод, что упрощает мне выбор правильных дисков и т. Д. Для развертывания?

я могу использовать iostat чтобы получить средний размер запроса (avgrq-rz) для каждого IOP и подсчет количества IOPS (r / s + w / s). Как определить, в основном ли это последовательный или случайный?

Да, на самом деле есть несколько инструментов, которые вы можете использовать для этого. Такие, как тот, который вы упомянули, iotop и команда iostat.

В зависимости от вашего дистрибутива для установки iotop можно использовать одно из следующих действий:

$ sudo apt-get install iotop или

$ yum install iotop

Запустите: root @ tomcat-1-vm: / # iotop (чтобы увидеть список запущенных процессов дискового ввода-вывода)

Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                  
24576 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
24580 be/4 www-data    0.00 B/s    0.00 B/s  0.00 %  0.00 % apache2 -k start
    5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
    6 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/u2:0]
    7 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]
    8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_bh]
    9 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
   10 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [lru-add-drain]
   11 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
   12 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [cpuhp/0]
   13 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kdevtmpfs]
   14 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [netns]
   15 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khungtaskd]

Вы также можете отобразить активность ввода-вывода, просто передав фразу o

Пример: root @ tomcat-1-vm: / # iotop -o

Total DISK READ :       0.00 B/s | Total DISK WRITE :      11.91 K/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:      11.91 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                            
  835 be/4 tomcat8     0.00 B/s    7.94 K/s  0.00 %  0.00 % java -Djava.util.logging.config.fi~he.catalina.startup.Bootstrap start
 1371 be/4 tomcat8     0.00 B/s    3.97 K/s  0.00 %  0.00 % java -Djava.util.logging.config.fi~he.catalina.startup.Bootstrap start

Чтобы узнать больше о вводе / выводе диска и информацию, вы можете проверить страница файловой системы proc

Опять же, в зависимости от дистрибутива, вы можете установить iostat следующим образом:

$ sudo apt-get install sysstat или

$ yum установить sysstat

Запускаем: root @ tomcat-1-vm: / # iostat -dx 5

Linux 4.9.0-6-amd64 (tomcat-1-vm)       05/29/2018      _x86_64_        (1 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.22    0.01    0.31     0.31     3.67    24.34     0.00   12.56    8.50   12.73   4.04   0.13

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.40    0.00    0.40     0.00     3.21    16.00     0.01   18.00    0.00   18.00  18.00   0.72

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00   25.30     0.00  5546.18   438.41     4.38  173.17    0.00  173.17   3.14   7.95

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     2.81    0.00    0.40     0.00    12.83    64.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     1.20    0.00    4.21     0.00    21.64    10.29     0.03    7.24    0.00    7.24   0.38   0.16

Вы также можете сослаться на следующие сообщение с примерами iostat на параметры, которые вы можете включить для получения дополнительных отчетов.

Еще одна команда, которую можно использовать, - это dstat.

Пример: root @ tomcat-1-vm: / # sudo apt-get install dstat

root@tomcat-1-vm:/# dstat -tdD total,sda,sdb,sdc,md1 60 
----system---- -dsk/total----dsk/sda--
     time     | read  writ: read  writ
29-05 23:58:15| 318B 3797B: 318B 3797B
29-05 23:59:15|   0   473k:   0   473k
29-05