Данная статья описывает индекс производительности облачного хранилища, методы тестирования производительности, а также рекомендации по интерпретации результатов тестирования.
Индекс производительности облачного хранилища
Главный индекс для измерения производительности хранилища включает IOPS, пропускную способность и период ожидания.
IOPS (Input Output Per Second)
IOPS расшифровывается как операции ввода/вывода в секунду, и означает количество записанных или прочитанных операций, которые могут быть осуществлены в одну секунду.
Ресурсоемкие приложения чувствительны к IOPS.
В таблице ниже приведены наиболее распространенные измеренные характеристики производительности: последовательные операции и случайные операции.
Характеристики IOPS
|
Описание
|
|
Total IOPS
|
Общее количество операций ввода/вывода в секунду
|
|
Random read IOPS
|
Среднее количество случайных прочтенных операций ввода/вывода в секунду
|
Случайный доступ к данным на устройствах хранения данных
|
Random write IOPS
|
Среднее количество случайных записанных операций ввода/вывода в секунду
|
Sequential read IOPS
|
Среднее количество последовательных прочтенных операций ввода/вывода в секунду
|
Последовательный доступ к местоположениям на устройствах хранения данных смежно
|
Sequential write IOPS
|
Среднее количество последовательных записанных операций ввода/вывода в секунду
|
Пропускная способность (Throughput)
Пропускная способность измеряет объем данных, успешно переданных за секунду.
Приложения, которые требуют массовое чтение или запись операций чувствительны к пропускной способности.
Период ожидания (Latency)
Период ожидания это время, которое требуется для выполнения запроса ввода/вывода.
Для приложений, чувствительных к периоду ожидания, таких как базы данных, и для которых длительный период ожидания может привести к сообщениям об ошибках, мы рекомендуем использовать SSD диски.
Для приложений, не чувствительных к периоду ожидания мы рекомендуем использование серверов с SATA дисками
Производительность
Данный раздел описывает производительность различных видов облачного хранилища.
Облачные диски
В таблице ниже приведены особенности и типичные сценарии различных видов облачных дисков.
Максимальная пропускная способность
Рекомендовано для решений:
- Облачный хостинг
- CloudVPS
- 1С-Битрикс
- Битрикс24
- 1С: Бухгалтерия
- Облачный диск
- Почта в облаке
- Облачный офис
Производительность дисков изменяется в зависимости от размера блоков данных. Меньшие блоки данных приводят к меньшей пропускной способности и более высокому IOPS, как показано в следующей таблице SSD диски могут достичь ожидаемой производительности только при малых блоках данных.
Производительность тестового диска
В зависимости от операционной системы, на которой работает сервер, вы можете использовать различные инструменты для тестирования производительности:
-Linux: рекомендованы fio или dd
-Windows: рекомендованы fio или Iometer
В данном разделе в качестве примера рассматривается сервер на Linux и fio, чтобы описать как тестировать производительность диска, используя fio. Перед тестированием диска вы должны убедиться, что диск соответствует 4К.
Вы можете использовать fio для тестирования производительности облачного диска.
Тестирование чистого диска может помочь добиться более точных данных о производительности, но повреждает структуру файловой системы. Убедитесь, что вы сделали бэкап перед тестированием. Мы рекомендуем использовать новый сервер без информации на диске, чтобы произвести тестирование диска с помощью fio.
Тестирование случайных записанных IOPS
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_Testing
Тестирование случайных прочитанных IOPS
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_Testing
Тестирование пропускной способности записи
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_PPS_Testing
Тестирование пропускной способности чтения
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Read_PPS_Testing
Для примера возьмем команду тестирования случайных прочитанных IOPS, чтобы описать значения параметров команды fio, как показано в следующей таблице:
Игнорировать буфер ввода/вывода при тестировании. Данные записывают напрямую.
Правила чтения и записи. Доступные варианты:
- randread (random read) - случайное прочтение
- randwrite(random write) - случайная запись
- read(sequential read) - последовательное прочтение
- write(sequential write) - последовательная запись
- randrw (random read and write) - случайные прочтение и запись.
Использовать libaio в качестве метода тестирования (Linux AIO, асинхронный ввод/вывод). Обычно есть 2 варианта того, как приложение использует ввод/вывод: синхронно и асинхронно. Синхронный ввод/вывод отправляет только один запрос ввода/вывода за раз и возвращает его только после завершения работы ядра. В этом случае значение iodepth всегда меньше 1 для единичной задачи, но может быть решена несколькими параллельными задачами. Обычно 16-32 параллельных задания могут заполнить iodepth. Асинхронный метод использует libaio для отправки пакета запросов ввода-вывода каждый раз, что сокращает время взаимодействия и делает его более эффективным.
Размер каждого блока для одного запроса ввода/вывода - 4к. Если размер не определен, то по умолчанию используется значение 4к. При тестировании IOPS мы рекомендуем устанавливать небольшое значение bs, например 4к, как в примере. При тестировании пропускной способности мы рекомендуем устанавливать большое значение bs, например 1024к, как в примерах с тестированием IOPS.
Размер тестируемого файла 1Гб
Кол-во тестируемых заданий - 1
Время тестирования 1000 секунд. Если значение не определено, тестирование продолжится со значением определенным для -size и будет записывать данные в -bs каждый раз.
Режим отображения результатов тестирования. Group_reporting суммирует статистику каждого задания, вместо того, чтобы показывать статистику по различным заданиям.
Выходной путь и название файлов. Тестирование чистого диска позволяет достичь более точных данных о производительности, но повреждает структуру файловой системы. Убедитесь, что вы осуществили резервное копирование ваших данных перед тестированием.
Название тестового задания