Тест производительности DTU

Область применения:База данных SQL Azure

Единица транзакций базы данных (DTU) представляет собой единицу измерения для объединенной оценки ресурсов ЦП, памяти, операций чтения и записи. Физические характеристики (ЦП, память, ввод-вывод), связанные с каждым измерением DTU, калибруются на основе теста производительности, который имитирует рабочую нагрузку реальной базы данных. В этой статье собраны результаты тестирования DTU и общие сведения о схеме, используемых типах транзакций, наборах рабочих нагрузок, пользователях и скорости, правилах масштабирования и метриках, связанных с тестовыми показателями производительности.

Общие сведения о модели приобретения на основе единиц DTU см. в статье Обзор модели приобретения на основе единиц DTU.

Сводка о тесте производительности

Тест производительности DTU измеряет производительность набора основных операций базы данных, чаще всего выполняемых в рабочих нагрузках оперативной обработки транзакций (OLTP). Хотя тест производительности разрабатывался для облачных вычислений, схемы базы данных, заполнение данными и транзакции рассчитаны на максимально широкий уровень репрезентативности основных элементов, которые чаще всего используются в рабочих нагрузках OLTP.

Соотнесение результатов тестирования производительности с реальной производительностью базы данных

Важно понимать, что все тесты производительности являются показательными и ориентировочными. Показатели скорости транзакций, достигнутые приложением тестирования производительности, будут отличаться от таких показателей других приложений. Тест производительности состоит из набора транзакций разных типов, выполняемых в схеме, которая содержит целый ряд таблиц и типов данных. Тест производительности выполняет основные операции, свойственные для всех рабочих нагрузок OLTP, но он не представляет какой-либо определенный класс базы данных или приложения. Цель тестирования производительности заключается в предоставлении приемлемых рекомендаций для относительной производительности базы данных, которую можно ожидать при переходе на более высокий или более низкий объем вычислительных ресурсов.

На самом деле базы данных имеют разные размеры и сложность, обрабатывают разные сочетания рабочих нагрузок и реагируют разными способами. Например, приложение с большим объемом операций ввода-вывода может быстрее достигнуть порогового значения таких операций или приложение с интенсивной нагрузкой ЦП может быстрее достигнуть порогового значения такой нагрузки. Нет никакой гарантии, что масштаб конкретной базы данных будет горизонтально уменьшаться так же, как это показывает тест производительности при увеличении нагрузки.

Тест производительности и методология его проведения подробно описаны в этой статье.

Схема

Схема разработана таким образом, чтобы предоставить достаточную степень разнообразия и сложности для поддержки широкого диапазона операций. Тест производительности выполняется в базе данных, состоящей из шести таблиц. Эти таблицы делятся на три категории: фиксированного размера, масштабируемые и расширяемые. Есть две таблицы фиксированного размера, три масштабируемые таблицы и одна расширяемая таблица. Таблицы фиксированного размера имеют неизменное количество строк. Таблицы масштабирования имеют кратность, которая пропорциональна производительности базы данных, но не изменяется во время теста. Расширяемая таблица имеет такой же размер, что и масштабируемая таблица при начальной нагрузке, но затем в процессе тестирования производительности кратность изменяется по мере добавления и удаления строк.

Схема включает сочетание типов данных, в том числе целое число, цифру, символ, а также дату и время. Схема включает первичные и вторичные ключи, но не имеет внешних ключей, т. е. между таблицами нет ограничений ссылочной целостности.

Программа формирования данных создает данные для исходной базы данных. Целочисленные и числовые данные создаются с помощью разных стратегий. В некоторых случаях значения случайным образом распределяются в диапазоне. Чтобы гарантировать соблюдение конкретного распределения в других случаях, набор значений переставляется случайным образом. Текстовые поля создаются из взвешенного списка слов для формирования реалистичных данных.

База данных имеет размер на основе коэффициента масштабирования. Коэффициент масштабирования (сокращенно SF) определяет кратность элементов в масштабируемых и растущих таблицах. Как описано ниже, в разделе "Пользователи и пошаговое продвижение", размер базы данных, количество пользователей и максимальная производительность масштабируются пропорционально друг к другу.

Transactions

Рабочая нагрузка состоит из девяти типов транзакций, как показано в следующей таблице. Каждая транзакция должна подчеркивать определенный набор системных характеристик в ядре СУБД и системном оборудовании. При этом она должна явно отличаться от других транзакций. Такой подход упрощает оценку влияния различных компонентов на общую производительность. Например, транзакция Read Heavy создает значительное количество операций чтения с диска.

Тип транзакции Описание
Чтение, низкая интенсивность ВЫБОР; в памяти; только для чтения
Носитель для чтения ВЫБОР; в основном в памяти; только для чтения
Чтение, высокая интенсивность ВЫБОР; в основном не в памяти; только для чтения
Обновление, низкая интенсивность ОБНОВЛЕНИЕ; в памяти; чтение и запись
Обновление, высокая интенсивность ОБНОВЛЕНИЕ; в основном не в памяти; чтение и запись
Вставка, низкая интенсивность ВСТАВКА; в памяти; чтение и запись
Вставка, высокая интенсивность ВСТАВКА; в основном не в памяти; чтение и запись
DELETE УДАЛЕНИЕ; сочетание в памяти и не в памяти; чтение и запись
ЦП, высокая интенсивность ВЫБОР; в памяти; относительно высокая загрузка ЦП; только для чтения

Сочетание рабочих нагрузок

Транзакции выбираются случайным образом из взвешенного распределения следующего общего сочетания. Обще сочетание имеет соотношение чтения и записи 2:1.

Тип транзакции Процент от сочетания
Чтение, низкая интенсивность 35
Носитель для чтения 20.
Чтение, высокая интенсивность 5
Обновление, низкая интенсивность 20.
Обновление, высокая интенсивность 3
Вставка, низкая интенсивность 3
Вставка, высокая интенсивность 2
DELETE 2
ЦП, высокая интенсивность 10

Пользователи и пошаговое продвижение

Рабочая нагрузка теста производительности определяется с помощью средства, которое передает транзакции через ряд подключений для имитации работы определенного количества одновременных пользователей. Хотя все подключения и транзакции создаются компьютером, для простоты мы называем эти подключения пользователями. Несмотря на то, что каждый пользователь работает независимо от других пользователей, все они выполняют одинаковый цикл, показанный ниже:

  1. Установление подключения к базе данных.
  2. Повторите, пока не будет сигнализировать о выходе:
    • случайный выбор транзакций (из взвешенного распределения);
    • выполнение выбранной транзакции и измерение времени ответа;
    • ожидание задержки шага.
  3. Завершение подключения к базе данных.
  4. Выход.

Задержка шага (в действии 2в) выбирается случайным образом, однако с распределением со средним значением в 1,0 секунду. Таким образом, в среднем каждый пользователь может создавать максимум одну транзакцию в секунду.

Правила масштабирования

Количество пользователей определяется размером базы данных (в единицах коэффициента масштабирования). Существует один пользователь на каждые пять единиц коэффициента масштабирования. Из-за задержки шага один пользователь может в среднем создавать не более одной транзакции в секунду.

Например, база данных с коэффициентом масштабирования 500 (SF=500) будет иметь 100 пользователей и может достичь максимальной скорости в 100 транзакций в секунду. Для более высокой скорости требуется больше пользователей и большие размеры базы данных.

Продолжительность измерения

Для правильного выполнения теста производительности требуется измерять устойчивое состояние по крайней мере один час.

Метрики

Ключевыми показателями теста производительности являются пропускная способность и время ответа.

  • Пропускная способность — это важный показатель производительности в тесте производительности. Пропускная способность измеряется в транзакциях в единицу времени, учитывая все типы транзакций.
  • Время отклика — это показатель прогнозируемости производительности. Ограничение времени ответа зависит от класса службы. Более высокие классы службы имеют более строгие требования ко времени ответа, как показано ниже.
Класс службы Единица пропускной способности Требование ко времени ответа
Премиальный Число транзакций в секунду 95-й процентиль при 0,5 секунды
Standard Edition Число транзакций в минуту 90-й процентиль при 1,0 секунде
Основной Число транзакций в час 80-й процентиль при 2,0 секундах

Примечание.

Метрики времени отклика получены с помощью теста производительности DTU. Время отклика для других рабочих нагрузок зависит от конкретной задачи и отличается.

Дальнейшие действия

Дополнительные сведения о моделях приобретения и связанных с ними понятиях см. в следующих статьях: