Всем известно, что базы данных, как правило, выполняют множество небольших случайных операций ввода-вывода, в то время как такие объекты с большими данными, как 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