В тесте производительности диска, если номер начального сектора не выровнен по 4‑КиБ, производительность диска будет сильно снижена. Убедитесь, что номер начального сектора выровнен по 4‑КиБ перед началом теста.
Для тестирования производительности совместно используемого диска необходимо выполнить следующие требования:
Если эти ECS не соответствуют требованию антиаффинности, совместно используемый диск не сможет достичь оптимальной производительности.
Процесс тестирования для Windows и Linux отличается.
Способ тестирования производительности диска зависит от ОС сервера. В этом разделе в качестве примера используется Windows Server 2019 Standard 64‑битный. Для других ОС Windows см. соответствующую документацию по ОС.
Установите средство измерения производительности Iometer перед тестом. Вы можете получить средство по адресу http://www.iometer.org/.
Отображается окно системной информации.
Если вы удалите раздел и выберете другой номер начального сектора для выравнивания по 4‑КиБ, вы потеряете все данные на этом разделе.
При тестировании IOPS и пропускной способности диска параметры для Iometer и fio одинаковы. Подробности см Таблица 1.
В следующем примере Iometer используется для тестирования производительности диска.

В этом примере длительность выполнения теста задается в 10 минут с 60‑секундным временем разгона. Производительность диска тестируется после того, как записи стабилизируются.



Если вы используете старую версию Linux OS, например CentOS 6.5, и запускаете fdisk по умолчанию начальный номер сектора будет не выровнен по 4‑KiB, что сильно влияет на производительность теста. По этой причине, если используется такая ОС, рекомендуется выбрать новый начальный номер сектора, выровненный по 4‑KiB, при создании разделов.
Способ тестирования производительности диска зависит от ОС сервера. В этом разделе в качестве примера используется CentOS 7.2 64‑bit. Для других Linux OSs см. соответствующую документацию ОС.
yum install fio
fdisk -lu
Отображается информация, подобная следующей:
[root@ecs-centos sdc]# fdisk -luDisk /dev/xvda: 10.7 GiB, 10737418240 bytes, 20971520 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x7db77aa5Device Boot Start End Blocks Id System/dev/xvda1 * 2048 20968919 10483436 83 LinuxDisk /dev/xvdb: 10.7 GiB, 10737418240 bytes, 20971520 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/xvdc: 53.7 GiB, 53687091200 bytes, 104857600 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x3cf3265cDevice Boot Start End Blocks Id System/dev/xvdc1 2048 41943039 20970496 83 Linux
Если вы удалите раздел и выберете другой номер начального сектора для выравнивания по 4‑КиБ, вы потеряете все данные на этом разделе.
Таблица 1 перечисляет параметры теста fio.
Параметр | Описание |
|---|---|
direct | Определяет, используется ли direct I/O.
|
iodepth | Определяет глубину очереди I/O. Эта глубина очереди относится к глубине очереди каждого потока независимо от того, используется один поток или несколько потоков в тесте. Общее количество одновременных I/O fio = iodepth x numjobs Примеры:
|
rw | Определяет политику тестового чтения/записи.
|
ioengine | Определяет, как fio обрабатывает запрос I/O (синхронно или асинхронно).
|
bs | Определяет размер блока I/O. Единицей может быть KiB, Kb, MiB или Mb, а значение по умолчанию — 4 KiB. |
размер | Определяет объём данных, обрабатываемый тестовыми I/O. Если параметры, такие как время выполнения, если они не указаны, тест завершается, когда fio обработает весь указанный объём данных. Значение может быть числом с единицей измерения или процентом. Число с единицей измерения указывает объём данных чтения/записи, например size=10G, указывая объём чтения/записи 10‑GiB. Процент указывает отношение объёма чтения/записи к общему размеру файлов, например size=20%, указывая, что объём чтения/записи составляет 20% от общего пространства файлов. |
numjobs | Определяет количество одновременно работающих потоков. |
runtime | Определяет время теста. Если этот параметр не указан, тест продолжается, пока указанный объём данных не будет обработан блоковым размером, определённым с помощью параметра size. |
group_reporting | Определяет режим отображения результатов теста. Значение параметра отображает статистику на одном потоке вместо всех задач. |
filename | Определяет имя тестового файла или устройства.
|
name | Определяет имя задачи теста. |