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

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

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

1 ответ

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

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

$ sudo apt-get install iotop или

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

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

Всего ЧИТАЙТЕ ДИСК: 0.00 B/s | ЗАПИСЬ ОБЩЕГО ДИСКА: 0.00 B / s
Фактический ДИСК READ:       0,00 B/s | Фактический ДИСКОВЫЙ ЗАПИСЬ:       0.00 B/s
  TID  PRIO ПОЛЬЗОВАТЕЛЬСКИЙ ДИСК ЧИТАТЬ ДИСК ЗАПИСАТЬ СВОБОДНЫЙ ВХОД> КОМАНДА                                                                                  
24576 be/4 www-data    0,00 B / с 0,00 B / с 0,00% 0,00 % apache2 -k начало
    1 бе / 4 корень 0,00 Б / с 0,00 Б / с 0,00% 0,00 % init
    2 be/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [kthreadd]
    3 be/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [ksoftirqd/0]
24580 be/4 www-data    0,00 B / с 0,00 B / с 0,00% 0,00 % apache2 -k начало
    5 be/0 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [kworker/0:0H]
    6 be/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [kworker/u2:0]
    7 be/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [rcu_sched]
    8 be/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [rcu_bh]
    9 rt/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00% [миграция /0]
   10 be/0 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [lru-add-dri]
   11 rt/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [watchdog/0]
   12 be/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [cpuhp/0]
   13 be/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [kdevtmpfs]
   14 be/0 корень 0,00 B / с 0,00 B / с 0,00% 0,00% [нетсн]
   15 be/4 корень 0,00 B / с 0,00 B / с 0,00% 0,00 % [khungtaskd]

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

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

Всего ЧИТАЙТЕ ДИСК: 0.00 B/s | ЗАПИСЬ ОБЩЕГО ДИСКА: 11,91 К / С
Фактический ДИСК READ:       0,00 B/s | Фактический ДИСК ЗАПИСИ: 11,91 К / с
  TID PRIO ПОЛЬЗОВАТЕЛЬСКИЙ ДИСК ЧИТАТЬ ДИСК ЗАПИСАТЬ СВОБОДНЫЙ ВХОД> КОМАНДА                                                            
  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 / с 3,97 K/ с 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) 29.05.20    08      _x86_64_        (1 процессор) Устройство:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz ждут 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 Устройство:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz ожидание r_await swatwt wa 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Устройство:         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 Устройство:         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  174.17    0.00  173 7.95 Устройство:         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 Устройство:         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,sda,sdb,sdc,md1 60 
---- система ---- -дск / всего ---- дск / sda--
     время | читать записку: читать записку
29-05 23:58:15| 318B 3797B: 318B 3797B
29-05 23:59:15|   0   473 КБ:   0   473 КБ
29-05
Другие вопросы по тегам