Поделиться через


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

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

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

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

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

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

  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 с агрегированными результатами от всех клиентов теста.

    Снимок экрана содержимого агрегированных результатов 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….
    

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