mod: Измерение скорости накопителя данных (fin)
This commit is contained in:
parent
3ee178b1e6
commit
3c342007e7
@ -22,11 +22,11 @@ dd if=/dev/zero of=/path/to/testfile bs=1G count=1 oflag=direct
|
|||||||
```
|
```
|
||||||
|
|
||||||
Где:
|
Где:
|
||||||
* `if=/dev/zero` -- указывает, что источник данных -- это непрерывный поток нулей;
|
* `if=/dev/zero` — указывает, что источник данных — это непрерывный поток нулей;
|
||||||
* `of=/path/to/testfile` -- задает файл, в который записываются данные. Убедитесь, что путь указывает на тестируемый диск;
|
* `of=/path/to/testfile` — задает файл, в который записываются данные. Убедитесь, что путь указывает на тестируемый диск;
|
||||||
* `bs=1G` -- размер блока (здесь 1 гигабайт за раз);
|
* `bs=1G` — размер блока (здесь 1 гигабайт за раз);
|
||||||
* `count=1` -- количество блоков для записи;
|
* `count=1` — количество блоков для записи;
|
||||||
* `oflag=direct` -- обходит кэш операционной системы, что обеспечивает более точное измерение.
|
* `oflag=direct` — обходит кэш операционной системы, что обеспечивает более точное измерение.
|
||||||
|
|
||||||
|
|
||||||
Результат для моего SSD NVMe Kingston SNV2S/2000G в Orange Pi 5 Plus:
|
Результат для моего SSD NVMe Kingston SNV2S/2000G в Orange Pi 5 Plus:
|
||||||
@ -36,7 +36,7 @@ dd if=/dev/zero of=/path/to/testfile bs=1G count=1 oflag=direct
|
|||||||
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.01244 s, 1.1 GB/s
|
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.01244 s, 1.1 GB/s
|
||||||
```
|
```
|
||||||
|
|
||||||
Здесь 1.1 GB/s -- это скорость записи. Результат для eMCC памяти Orange Pi 5 Plus:
|
Здесь 1.1 GB/s — это скорость записи. Результат для eMCC памяти Orange Pi 5 Plus:
|
||||||
```text
|
```text
|
||||||
1+0 records in
|
1+0 records in
|
||||||
1+0 records out
|
1+0 records out
|
||||||
@ -54,10 +54,10 @@ dd if=/path/to/testfile of=/dev/null bs=1G iflag=direct
|
|||||||
```
|
```
|
||||||
|
|
||||||
Где:
|
Где:
|
||||||
* `if=/path/to/testfile` -- файл, созданный в предыдущем тесте.
|
* `if=/path/to/testfile` — файл, созданный в предыдущем тесте.
|
||||||
* `of=/dev/null` -- данные не сохраняются, что позволяет измерять только скорость чтения.
|
* `of=/dev/null` — данные не сохраняются, что позволяет измерять только скорость чтения.
|
||||||
* `bs=1G` -- размер блока.
|
* `bs=1G` — размер блока.
|
||||||
* `iflag=direct` -- обходит кэш операционной системы.
|
* `iflag=direct` — обходит кэш операционной системы.
|
||||||
|
|
||||||
Результат для SSD NVMe Kingston SNV2S/2000G в Orange Pi 5 Plus:
|
Результат для SSD NVMe Kingston SNV2S/2000G в Orange Pi 5 Plus:
|
||||||
```text
|
```text
|
||||||
@ -182,7 +182,7 @@ fio --name=seq_nvme --size=10G --bs=1M --bs=4k --direct=1 --rw=randrw --rwmixrea
|
|||||||
* `--bs=1M` — размер блока данных (1 МБ).
|
* `--bs=1M` — размер блока данных (1 МБ).
|
||||||
* `--bs=4k` — размер блока данных (4 КБ).
|
* `--bs=4k` — размер блока данных (4 КБ).
|
||||||
* `--direct=1` — обход кэша операционной системы.
|
* `--direct=1` — обход кэша операционной системы.
|
||||||
* `--rw=randrw` — тип операции (случайное чтение и запись). Также можно установить и другие параметры: `write` — тип операции (последовательная запись). `read` -- последовательное чтение, `randwrite` -- случайная запись, `randread` -- случайное чтение, `rw` -- смешанный режим (чтение и запись).
|
* `--rw=randrw` — тип операции (случайное чтение и запись). Также можно установить и другие параметры: `write` — тип операции (последовательная запись). `read` — последовательное чтение, `randwrite` — случайная запись, `randread` — случайное чтение, `rw` — смешанный режим (чтение и запись).
|
||||||
* `--rwmixread=70` — процент операций чтения/запись (70% чтения, 30% записи).
|
* `--rwmixread=70` — процент операций чтения/запись (70% чтения, 30% записи).
|
||||||
* `--numjobs=4` — количество потоков (заданий), которые одновременно выполняются.
|
* `--numjobs=4` — количество потоков (заданий), которые одновременно выполняются.
|
||||||
* `--iodepth=32` — количество операций ввода-вывода, которые отправляются одновременно.
|
* `--iodepth=32` — количество операций ввода-вывода, которые отправляются одновременно.
|
||||||
@ -351,13 +351,13 @@ Disk stats (read/write):
|
|||||||
Для каждого потока представлены следующие данные:
|
Для каждого потока представлены следующие данные:
|
||||||
|
|
||||||
* Чтение (READ)
|
* Чтение (READ)
|
||||||
* IOPS -- Средние значения IOPS (операции в секунду) для потоков составляют, например, 2415 IOPS для первого задания. Это число показывает, сколько операций чтения в секунду выполнялось.
|
* IOPS — Средние значения IOPS (операции в секунду) для потоков составляют, например, 2415 IOPS для первого задания. Это число показывает, сколько операций чтения в секунду выполнялось.
|
||||||
* Latency (задержка) -- Время отклика операций ввода-вывода (чтение). Например, среднее время отклика (clat) составляет 298.88 микросекунд, а 99-й процентиль (99.00th) — 1663 микросекунды. Это означает, что 99% операций чтения завершаются за это время.
|
* Latency (задержка) — Время отклика операций ввода-вывода (чтение). Например, среднее время отклика (clat) составляет 298.88 микросекунд, а 99-й процентиль (99.00th) — 1663 микросекунды. Это означает, что 99% операций чтения завершаются за это время.
|
||||||
* Bandwidth (пропускная способность) -- Средние скорости чтения: 9.66 MiB/s, 9.57 MiB/s и т.д.
|
* Bandwidth (пропускная способность) — Средние скорости чтения: 9.66 MiB/s, 9.57 MiB/s и т.д.
|
||||||
* Запись (WRITE)
|
* Запись (WRITE)
|
||||||
* IOPS -- Средние значения: около 1033-1117 IOPS. Меньше, чем для чтения из-за меньшего процента операций записи.
|
* IOPS — Средние значения: около 1033-1117 IOPS. Меньше, чем для чтения из-за меньшего процента операций записи.
|
||||||
* Latency (задержка) -- Средняя задержка: около 200-230 микросекунд. Процентиль 99%: до 1483-4490 микросекунд.
|
* Latency (задержка) — Средняя задержка: около 200-230 микросекунд. Процентиль 99%: до 1483-4490 микросекунд.
|
||||||
* Bandwidth (пропускная способность) -- Средняя скорость записи: 4.1-4.4 MiB/s.
|
* Bandwidth (пропускная способность) — Средняя скорость записи: 4.1-4.4 MiB/s.
|
||||||
|
|
||||||
#### Сводка задержек (Latency Summary)
|
#### Сводка задержек (Latency Summary)
|
||||||
|
|
||||||
@ -381,3 +381,68 @@ rm seq_nvme.*
|
|||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
## Измерение производительности дисков, RAID-массивов и сравнение скорости работы разных файловых систем (ext4, XFS, btrfs и др.) с помощью `bonnie++`
|
||||||
|
|
||||||
|
`bonnie++` — это утилита для тестирования производительности файловой системы, которая позволяет оценить скорость чтения/записи, IOPS (число операций ввода/вывода в секунду), задержки и другие параметры. Она позволяет провести тестирование на различных уровнях нагрузки и с разными параметрами.
|
||||||
|
|
||||||
|
Установка bonnie++:
|
||||||
|
```shell
|
||||||
|
sudo apt install bonnie++
|
||||||
|
```
|
||||||
|
|
||||||
|
Запуск теста (например):
|
||||||
|
```shell
|
||||||
|
bonnie++ -s 8192 -r 4096 -u $(whoami)
|
||||||
|
```
|
||||||
|
|
||||||
|
Где:
|
||||||
|
* `-s 8192` — размер файла для теста (8 ГБ).
|
||||||
|
* `-r 4096` — размер блока данных (4 КБ).
|
||||||
|
* `-u $(whoami)` — имя пользователя, от имени которого запускается тест.
|
||||||
|
|
||||||
|
Результаты выполнения вышеуказанной команды для моего NVMe SSD (Kingston SNV2S/2000G) в Orange Pi 5 Plus были следующие:
|
||||||
|
```text
|
||||||
|
Version 2.00 ------Sequential Output------ --Sequential Input- --Random-
|
||||||
|
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
|
||||||
|
Name:Size etc /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
|
||||||
|
opi5plus-1 8G 958k 99 1.1g 98 1.8g 93 2919k 99 4.4g 99 +++++ +++
|
||||||
|
Latency 39397us 155us 92us 4420us 87us 641us
|
||||||
|
Version 2.00 ------Sequential Create------ --------Random Create--------
|
||||||
|
opi5plus-1 -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
|
||||||
|
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
|
||||||
|
16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
|
||||||
|
Latency 2136us 600us 449us 1023us 241us 65us
|
||||||
|
```
|
||||||
|
|
||||||
|
Разберем результаты выполнения вашего bonnie++-теста и объясним основные метрики:
|
||||||
|
|
||||||
|
* `------Sequential Output------` — последовательный вывод (запись)
|
||||||
|
* `-Per Chr-` — посимвольная запись
|
||||||
|
* `/sec` — скорость записи в байтах в секунду. Например, 958k = 958 КБ/с.
|
||||||
|
* `%CP` — процент использования процессора 99%.
|
||||||
|
* `Latency` — задержка записи в микросекундах. Например, 39397 микросекунд.
|
||||||
|
* `-Block-` — блочная запись
|
||||||
|
* `/sec` — скорость записи в байтах в секунду. Например, 1.1g = 1.1 ГБ/с.
|
||||||
|
* `%CP` — процент использования процессора 98%.
|
||||||
|
* `Latency` — задержка записи в микросекундах 155 микросекунд.
|
||||||
|
* `-Rewrite-` — перезапись
|
||||||
|
* `/sec` — скорость записи в байтах в секунду. Например, 1.8g = 1.8 ГБ/с.
|
||||||
|
* `%CP` — процент использования процессора 93%.
|
||||||
|
* `Latency` — задержка записи в микросекундах 92 микросекунд.
|
||||||
|
* `--Sequential Input-` — последовательный ввод (чтение)
|
||||||
|
* `-Per Chr-` — посимвольное чтение
|
||||||
|
* `/sec` — скорость чтения в байтах в секунду. Например, 2919k = 2919 КБ/с.
|
||||||
|
* `%CP` — процент использования процессора 99%.
|
||||||
|
* `Latency` — задержка чтения в микросекундах 4420 микросекунд.
|
||||||
|
* `-Block-` — блочное чтение
|
||||||
|
* `/sec` — скорость чтения в байтах в секунду. Например, 4.4g = 4.4 ГБ/с.
|
||||||
|
* `%CP` — процент использования процессора 99%.
|
||||||
|
* `Latency` — задержка чтения в микросекундах 87 микросекунд.
|
||||||
|
* `--Random-` — случайный доступ.
|
||||||
|
* 'Latency' — задержка в микросекундах. Например, 641 микросекунда.
|
||||||
|
* ...
|
||||||
|
* ...
|
||||||
|
* И так далее.
|
||||||
|
|
||||||
|
Более подробно о параметрах и метриках bonnie++ можно прочитать в справке `man bonnie++`.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user