79 lines
5.4 KiB
Markdown
79 lines
5.4 KiB
Markdown
# Измерение скорости накопителей (HDD, SSD, USB Flash, NAS и т.д.) под Linux
|
||
|
||
Способов измерения скорости накопителей под Linux много, и можно подобрать такие, что более точно покажут
|
||
производительность именно на ваших задачах.
|
||
|
||
## Измерение задержек (latency) операций ввода/вывода
|
||
|
||
Утилита ioping проверяет задержки накопителей данных (похож на ping, но для дисков):
|
||
|
||
Установим ioping:
|
||
```shell
|
||
sudo apt install ioping
|
||
```
|
||
|
||
Замер:
|
||
```shell
|
||
ioping -c 10 -s 1m -W .
|
||
```
|
||
|
||
Где:
|
||
* `-c 10` -- количество замеров;
|
||
* `-s 10m` -- размер блока данных для тестирования. `10m' -- 10 мегабайт;
|
||
* `-W` -- С записью вместо чтения. Это более безопасно для временного файла в целевом каталоге, и, кроме того, запись ввода-вывода даёт более надежные результаты для систем, где некэшированные чтения не поддерживаются
|
||
или происходит искажающее замеры кэширование на каком-то уровне.
|
||
* `.` -- каталог, в котором будут производиться замеры. `.` -- текущий каталог.
|
||
|
||
Другие ключи и опции можно посмотреть в справке `man ioping` или `ioping --help`.
|
||
|
||
Результаты теста будут примерно такими:
|
||
```text
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=1 time=21.1 ms (warmup)
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=2 time=29.7 ms
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=3 time=23.5 ms
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=4 time=22.3 ms
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=5 time=21.7 ms
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=6 time=23.1 ms
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=7 time=21.7 ms (fast)
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=8 time=31.1 ms (slow)
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=9 time=23.0 ms
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=10 time=22.7 ms
|
||
|
||
--- . (ext4 /dev/nvme0n1p2 1.79 TiB) ioping statistics ---
|
||
9 requests completed in 218.8 ms, 90 MiB written, 41 iops, 411.3 MiB/s
|
||
generated 10 requests in 9.04 s, 100 MiB, 1 iops, 11.1 MiB/s
|
||
min/avg/max/mdev = 21.7 ms / 24.3 ms / 31.1 ms / 3.32 ms
|
||
```
|
||
|
||
Сверху выводятся данные по индивидуальным запросам:
|
||
```text
|
||
10 MiB >>> . (ext4 /dev/nvme0n1p2 1.79 TiB): request=1 time=21.1 ms (warmup)
|
||
```
|
||
|
||
Где:
|
||
* `10 MiB` — размер блока данных, к которому идет доступ;
|
||
* `<<< .` — текущая директория, на которой проводится тест;
|
||
* `(ext4 /dev/nvme0n1p2 1.79 TiB)` — файловая система (ext4) и устройство (/dev/nvme0n1p2) с емкостью 1.79 ТБ, где выполняется тест;
|
||
* `request=1` — номер запроса;
|
||
* `time=21.1 ms` — время выполнения запроса (в миллисекундах -- `ms`, в микросекунды -- `us`);
|
||
* `(warmup)` — первый запрос может использоваться для "прогрева", его результаты могут быть исключены из финальной статистики, `(fast)` — запрос выполнен быстрее, чем среднее время выполнения, `(slow)` — запрос выполнен медленнее, чем среднее время выполнения.
|
||
|
||
Снизу выводятся статистические данные по всем запросам:
|
||
```text
|
||
--- . (ext4 /dev/nvme0n1p2 1.79 TiB) ioping statistics ---
|
||
9 requests completed in 218.8 ms, 90 MiB written, 41 iops, 411.3 MiB/s
|
||
generated 10 requests in 9.04 s, 100 MiB, 1 iops, 11.1 MiB/s
|
||
min/avg/max/mdev = 21.7 ms / 24.3 ms / 31.1 ms / 3.32 ms
|
||
```
|
||
|
||
Где:
|
||
* `9 requests completed in 218.8 ms` — количество запросов, завершенных за время теста и общее время выполнения;
|
||
* `90 MiB written` — общий объем данных, записанных на диск;
|
||
* `41 iops` — количество операций ввода/вывода в секунду (IOPS);
|
||
* `411.3 MiB/s` — скорость записи данных на диск;
|
||
* `generated 10 requests in 9.04 s` — количество запросов, сгенерированных за время теста и общее время выполнения;
|
||
* `100 MiB` — общий объем данных, сгенерированных тестом;
|
||
* `1 iops` — количество операций ввода/вывода в секунду (IOPS) при генерации данных;
|
||
* `11.1 MiB/s` — скорость генерации данных;
|
||
* `min/avg/max/mdev = 21.7 ms / 24.3 ms / 31.1 ms / 3.32 ms` — **минимальное**, **среднее**, **максимальное** время выполнения запроса и **стандартное отклонение**.
|