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