Измерение производительности Azure Cosmos DB для NoSQL с помощью платформы тестирования

Существует больше вариантов, чем когда-либо, в типе базы данных для использования с рабочей нагрузкой данных. Одним из ключевых факторов выбора базы данных является производительность базы данных или службы, но производительность тестирования может быть громоздкой и подверженной ошибкам. Платформа тестирования для баз данных Azure упрощает процесс измерения производительности с помощью популярных средств тестирования с открытым исходным кодом с помощью рецептов низкой трения, реализующих распространенные рекомендации. В Azure Cosmos DB для NoSQL платформа реализует рекомендации по пакету SDK java и использует средство YCSB с открытым кодом. В этом руководстве вы используете эту платформу тестирования для реализации рабочей нагрузки чтения для ознакомления с платформой.

Необходимые компоненты

Создание ресурсов учетной записи Azure Cosmos DB

Сначала вы создадите базу данных и контейнер в существующей учетной записи API для NoSQL.

  1. Перейдите к существующей учетной записи API для NoSQL в портал Azure.

  2. В меню ресурсов выберите Обозреватель данных.

    Снимок экрана: параметр обозревателя данных, выделенный в меню ресурсов.

  3. На странице обозревателя данных выберите параметр "Создать контейнер" на панели команд.

    Снимок экрана: параметр

  4. В диалоговом окне создания контейнера создайте новый контейнер со следующими параметрами:

    Параметр Значение
    Идентификатор базы данных ycsb
    Тип пропускной способности базы данных Вручную
    Объем пропускной способности базы данных 400
    Идентификатор контейнера usertable
    Ключ секции /id

    Снимок экрана: диалоговое окно

Развертывание платформы тестирования в Azure

Теперь вы используете шаблон Azure Resource Manager для развертывания платформы тестирования в Azure с помощью рецепта чтения по умолчанию.

  1. Разверните платформу тестирования с помощью шаблона Azure Resource Manager, доступного по этой ссылке.

    Кнопка развертывания в Azure.

  2. На странице настраиваемого развертывания следующие параметры

    Снимок экрана: страница настраиваемого развертывания со значениями параметров, заполненными.

  3. Выберите "Рецензирование" и "Создать", чтобы развернуть шаблон.

  4. Дождитесь завершения развертывания.

    Совет

    Развертывание может занять 5–10 минут.

Просмотр результатов теста

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

  1. Перейдите к существующей учетной записи служба хранилища Azure в портал Azure.

  2. Перейдите в таблицу хранилища с именем ycsbbenchmarkingmetadata и найдите сущность с ключом секции ycsb_sql.

    Снимок экрана: таблица ycsbbenchmarkingMetadata в учетной записи хранения.

  3. Обратите внимание на JobStatus поле сущности таблицы. Изначально состояние задания и Started включает метку времени в JobStartTime свойстве, но не JobFinishTime свойство.

  4. Подождите, пока задание не имеет состояния Finished и включает метку времени в JobFinishTime свойство.

    Совет

    Выполнение задания может занять около 20–30 минут.

  5. Перейдите к контейнеру хранилища в той же учетной записи с префиксом ycsbbenchmarking-*. Просмотрите выходные и диагностические BLOB-объекты для средства.

    Снимок экрана: контейнер и выходные BLOB-объекты из средства тестирования.

  6. Откройте большой двоичный объект aggregation.csv и просмотрите содержимое. Теперь у вас должен быть набор данных CSV с агрегированными результатами от всех клиентов теста.

    Снимок экрана: содержимое большого двоичного объекта агрегирования.

    Operation,Count,Throughput,Min(microsecond),Max(microsecond),Avg(microsecond),P9S(microsecond),P99(microsecond)
    READ,180000,299,706,448255,1079,1159,2867
    

Рецепты

Платформа тестирования для баз данных Azure включает в себя рецепты для инкапсулирования определений рабочих нагрузок, передаваемых базовому средству тестирования для интерфейса "1-Click". Определения рабочей нагрузки были разработаны на основе рекомендаций, опубликованных командой Azure Cosmos DB и командой средства тестирования. Рецепты проверены и проверены для согласованных результатов.

Вы можете увидеть следующие задержки для всех рецептов чтения и записи в репозитории GitHub.

  • Задержка чтения

    Схема типичной задержки чтения в среднем около 1 миллисекунда до 2 миллисекунда.

  • Задержка записи

    Схема типичной задержки записи в среднем около 4 миллисекунда.

Распространенные проблемы

В этом разделе содержатся распространенные ошибки, которые могут возникнуть при запуске средства проверки производительности. Журналы ошибок для средства обычно доступны в контейнере в учетной записи служба хранилища Azure.

Снимок экрана: контейнер и большие двоичные объекты в учетной записи хранения.

  • Если журналы недоступны в учетной записи хранения, эта проблема обычно вызвана неправильным или отсутствующим хранилищем строка подключения. В этом случае эта ошибка отображается в файле agent.out в папке /home/benchmarking виртуальной машины клиента.

    Error while accessing storage account, exiting from this machine in agent.out on the VM
    
  • Эта ошибка указана в файле agent.out как в клиентской виртуальной машине, так и в учетной записи хранения, если URI конечной точки Azure Cosmos DB является неверным или недоступным.

    Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known 
    
  • Эта ошибка указана в файле agent.out как на клиентской виртуальной машине, так и в учетной записи хранения, если ключ Azure Cosmos DB неверный.

    The input authorization token can't serve the request. The wrong key is being used….
    

Следующие шаги

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