Как я могу отслеживать скорость чтения и записи на определенное устройство или точку монтирования в Linux, например, /dev/sdc2, которое подключено к /mnt/data/?

Например, хотелось бы отображать скорость в МБ/с и обновлять один или два раза в секунду.

0
Jeff Schaller 31 Июл 2020 в 19:26

2 ответа

iostat — ваш источник правды, в частности iostat -md /dev/devicename 1 для вашего варианта использования.

-m Display statistics in megabytes per second.

-z Tell iostat to omit output for any devices for which there was no activity during the sample period.

root@kahnbox:/home/kahn$ iostat -md /dev/sda 1
Linux 5.4.17-100.fc30.x86_64 (kahnbox)  31/07/20        _x86_64_        (4 CPU)

Device             tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda               4.61         0.00         0.12       2521     152976

Device             tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda               3.00         0.00         0.04          0          0

Device             tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda               0.00         0.00         0.00          0          0

tps: Indicate the number of transfers per second that were issued to the device. A transfer is an I/O request to the device. Multiple logical requests can be combined into a single I/O request to the device. A transfer is of indeterminate size.

Я предпочитаю флаг -z, так как он уменьшит болтовню. С включением 1 в конце команды вы будете получать результаты каждую секунду, пока они могут быть предоставлены.

Если вы хотите установить эту утилиту, вам нужно скачать пакет sysstat:

root@kahnbox:/home/kahn$ yum whatprovides iostat                                                                                                                                                                                                                                                                             
Last metadata expiration check: 1:32:20 ago on Fri 31 Jul 2020 13:44:22 EDT.
sysstat-11.7.3-3.fc30.x86_64 : Collection of performance monitoring tools for Linux
Repo        : @System
Matched from:
Filename    : /usr/bin/iostat

sysstat-11.7.3-3.fc30.x86_64 : Collection of performance monitoring tools for Linux
Repo        : fedora
Matched from:
Filename    : /usr/bin/iostat
1
Kahn 31 Июл 2020 в 22:15

Я думаю, что iostat является предпочтительным инструментом для этих целей. Пример:

iostat -d -t -p sdc 1 2

Эта команда выводит информацию о скорости sdc два раза с интервалом в 1 секунду.

0
synteru 31 Июл 2020 в 19:30
Эта команда дает выход и завершает работу, плюс скорость отображается в килобайтах, а не в миллибайтах.
 – 
Smeterlink
31 Июл 2020 в 19:51
Вы можете использовать опцию m iostat -m
 – 
Prvt_Yadav
31 Июл 2020 в 20:20