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

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

Предварительные требования

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

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

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

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

    Снимок экрана: параметр Data Explorer, выделенный в меню ресурсов.

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

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

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

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

    Снимок экрана: диалоговое окно создания контейнера на странице Data Explorer.

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

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

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

    Кнопка

  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 щелчком. Определения рабочих нагрузок были разработаны на основе рекомендаций, опубликованных командой 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….
    

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