Тест производительности DTU
Применимо к: База данных SQL Azure
Единица транзакций базы данных (DTU) представляет собой единицу измерения для объединенной оценки ресурсов ЦП, памяти, операций чтения и записи. Физические характеристики (ЦП, память, ввод-вывод), связанные с каждым измерением DTU, калибруются на основе теста производительности, который имитирует рабочую нагрузку реальной базы данных. В этой статье собраны результаты тестирования DTU и общие сведения о схеме, используемых типах транзакций, наборах рабочих нагрузок, пользователях и скорости, правилах масштабирования и метриках, связанных с тестовыми показателями производительности.
Общие сведения о модели приобретения на основе единиц DTU см. в статье Обзор модели приобретения на основе единиц DTU.
Сводка о тесте производительности
Тест производительности DTU измеряет производительность набора основных операций базы данных, чаще всего выполняемых в рабочих нагрузках оперативной обработки транзакций (OLTP). Хотя тест производительности разрабатывался для облачных вычислений, схемы базы данных, заполнение данными и транзакции рассчитаны на максимально широкий уровень репрезентативности основных элементов, которые чаще всего используются в рабочих нагрузках OLTP.
Соотнесение результатов тестирования производительности с реальной производительностью базы данных
Важно понимать, что все тесты производительности являются показательными и ориентировочными. Показатели скорости транзакций, достигнутые приложением тестирования производительности, будут отличаться от таких показателей других приложений. Тест производительности состоит из набора транзакций разных типов, выполняемых в схеме, которая содержит целый ряд таблиц и типов данных. Тест производительности выполняет основные операции, свойственные для всех рабочих нагрузок OLTP, но он не представляет какой-либо определенный класс базы данных или приложения. Цель тестирования производительности заключается в предоставлении приемлемых рекомендаций для относительной производительности базы данных, которую можно ожидать при переходе на более высокий или более низкий объем вычислительных ресурсов.
На самом деле базы данных имеют разные размеры и сложность, обрабатывают разные сочетания рабочих нагрузок и реагируют разными способами. Например, приложение с большим объемом операций ввода-вывода может быстрее достигнуть порогового значения таких операций или приложение с интенсивной нагрузкой ЦП может быстрее достигнуть порогового значения такой нагрузки. Нет никакой гарантии, что масштабируемость конкретной базы данных будет изменяться таким же образом, как при испытании эталонного теста под увеличенной нагрузкой.
Тест производительности и методология его проведения подробно описаны в этой статье.
Схема
Схема разработана таким образом, чтобы предоставить достаточную степень разнообразия и сложности для поддержки широкого диапазона операций. Тест производительности выполняется в базе данных, состоящей из шести таблиц. Эти таблицы делятся на три категории: фиксированного размера, масштабируемые и расширяемые. Есть две таблицы фиксированного размера, три масштабируемые таблицы и одна расширяемая таблица. Таблицы фиксированного размера имеют неизменное количество строк. Таблицы масштабирования имеют кратность, которая пропорциональна производительности базы данных, но не изменяется во время теста. Расширяемая таблица имеет такой же размер, что и масштабируемая таблица при начальной нагрузке, но затем в процессе тестирования производительности кратность изменяется по мере добавления и удаления строк.
Схема включает сочетание типов данных, в том числе целое число, цифру, символ, а также дату и время. Схема включает первичные и вторичные ключи, но не имеет внешних ключей, т. е. между таблицами нет ограничений ссылочной целостности.
Программа формирования данных создает данные для исходной базы данных. Целочисленные и числовые данные создаются с помощью разных стратегий. В некоторых случаях значения случайным образом распределяются в диапазоне. Чтобы гарантировать соблюдение конкретного распределения в других случаях, набор значений переставляется случайным образом. Текстовые поля создаются из взвешенного списка слов для формирования реалистичных данных.
База данных имеет размер на основе фактора масштаба. Коэффициент масштабирования (сокращенно SF) определяет мощность масштабируемых и увеличиваемых таблиц. Как описано ниже, в разделе "Пользователи и темпы работы", размер базы данных, количество пользователей и максимальная производительность увеличиваются пропорционально друг к другу.
Транзакции
Рабочая нагрузка состоит из девяти типов транзакций, как показано в следующей таблице. Каждая транзакция должна подчеркивать определенный набор системных характеристик в ядре СУБД и системном оборудовании. При этом она должна явно отличаться от других транзакций. Такой подход упрощает оценку влияния различных компонентов на общую производительность. Например, транзакция Read Heavy создает значительное количество операций чтения с диска.
Тип проводки | Описание |
---|---|
Чтение, низкая интенсивность | ВЫБОР; в оперативной памяти; только для чтения |
Читать Medium | SELECT; в основном в памяти; только для чтения |
Чтение, высокая интенсивность | SELECT; в основном не в оперативной памяти; только для чтения |
Обновление Лайт | ОБНОВЛЕНИЕ; в памяти; чтение и запись |
Обновление, высокая интенсивность | ОБНОВЛЕНИЕ; в основном не в памяти; режим чтения-записи |
Insert Lite | ВСТАВКА; оперативная память; запись и чтение |
Вставить тяжелый | ВСТАВКА; преимущественно вне памяти; операции чтения и записи |
Удалить | УДАЛЕНИЕ; смешивание в оперативной памяти и не в оперативной памяти; режим чтения и записи |
требовательный к процессору | SELECT; в памяти; относительно высокая загрузка ЦП; только для чтения |
Сочетание рабочих нагрузок
Транзакции выбираются случайным образом из распределения на основе весовых коэффициентов, учитывающего следующую общую смесь. Обще сочетание имеет соотношение чтения и записи 2:1.
Тип проводки | Процент смеси |
---|---|
Лёгкое чтение | 35 |
Читать на Medium | 20 |
Чтение, высокая интенсивность | 5 |
Обновление, низкая интенсивность | 20 |
Обновление, высокая интенсивность | 3 |
Вставка Лёгкая версия | 3 |
Вставить тяжёлый | 2 |
Удалить | 2 |
Загруженность ЦП | 10 |
Пользователи и пошаговое продвижение
Рабочая нагрузка теста производительности определяется с помощью средства, которое передает транзакции через ряд подключений для имитации работы определенного количества одновременных пользователей. Хотя все подключения и транзакции создаются компьютером, для простоты мы называем эти подключения пользователями. Несмотря на то, что каждый пользователь работает независимо от других пользователей, все они выполняют одинаковый цикл, показанный ниже:
- Установление подключения к базе данных.
- Повторяйте, пока не получите сигнал на выход.
- случайный выбор транзакций (из взвешенного распределения);
- выполнение выбранной транзакции и измерение времени ответа;
- Ожидание паузы в темпе.
- Завершение подключения к базе данных.
- Выход.
Задержка процесса (в шаге 2в) выбирается случайным образом, но с распределением, имеющим среднее время 1,0 секунды. Таким образом, в среднем каждый пользователь может создавать максимум одну транзакцию в секунду.
Правила масштабирования
Количество пользователей определяется размером базы данных (в единицах коэффициента масштабирования). Существует один пользователь на каждые пять единиц коэффициента масштабирования. Из-за задержки шага один пользователь может в среднем создавать не более одной транзакции в секунду.
Например, база данных с коэффициентом масштабирования 500 (SF=500) будет иметь 100 пользователей и может достичь максимальной скорости в 100 транзакций в секунду. Для достижения более высокой скорости операций в секунду требуется больше пользователей и более крупная база данных.
Продолжительность измерения
Для правильного выполнения теста производительности требуется измерять устойчивое состояние по крайней мере один час.
Метрики
Ключевыми показателями теста производительности являются пропускная способность и время ответа.
- Пропускная способность — это важный показатель производительности в тесте производительности. Пропускная способность измеряется в транзакциях в единицу времени, учитывая все типы транзакций.
- Время отклика — это показатель прогнозируемости производительности. Ограничение времени ответа зависит от класса службы. Более высокие классы службы имеют более строгие требования ко времени ответа, как показано ниже.
Класс службы | Единица пропускной способности | Требование ко времени ответа |
---|---|---|
Премиум | Число транзакций в секунду | 95-й процентиль за 0,5 секунды |
Стандартные | Число транзакций в минуту | 90-й процентиль при 1,0 секунде |
Базовая | Число транзакций в час | 80-й процентиль при 2,0 секундах |
Примечание.
Метрики времени отклика получены с помощью теста производительности DTU. Время отклика для других рабочих нагрузок зависит от конкретной задачи и отличается.
Следующие шаги
Дополнительные сведения о моделях приобретения и связанных с ними понятиях см. в следующих статьях:
- Обзор покупательной модели на основе DTU
- Модель покупки vCore — база данных Azure SQL
- Сравнение моделей приобретения Базы данных SQL Azure на основе виртуальных ядер (vCore) и DTU
- Миграция базы данных SQL Azure из модели на основе DTU с модели на основе виртуальных ядер
- Ограничения ресурсов для отдельных баз данных с помощью модели приобретения DTU — База данных SQL Azure
- Ограничения ресурсов для эластичных пулов в модели покупки DTU