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

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

Предпосылки

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

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

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

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

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

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

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

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

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

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

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

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

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

    Кнопка

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

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

  3. Выберите Просмотр и создание и затем Создать, чтобы развернуть шаблон.

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

    Tip

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

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

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

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

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

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

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

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

    Tip

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

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

    Снимок экрана контейнера и выходных BLOB из инструмента сравнительного анализа.

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

    Скриншот содержимого результирующего BLOB агрегирования.

    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.

Снимок экрана контейнера и объектов BLOB в учетной записи хранения.

  • Если журналы недоступны в аккаунте хранилища, эта проблема обычно вызвана неправильной или отсутствующей строкой подключения к хранилищу. В этом случае эта ошибка отображается в файле 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….
    

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