Проблема с производительностью для пакетной вставки в marklogic

#performance #insert #document #marklogic

#Производительность #вставить #документ #marklogic

Вопрос:

У меня есть требование вставить 10 000 документов в marklogic менее чем за 10 секунд.

Я тестировал на одном одноузловом сервере marklogic следующим образом:

  1. используйте xdmp:spawn для передачи задачи вставки документа на сервер задач;
  2. использовать xdmp:document-insert без явного указания леса;
  3. сервер задач имеет 8 интерфейсов для обработки задач;
  4. Мы включили CPF .

Производительность очень плохая: для завершения создания 10 000 документов потребовалось 2 минуты. Я уверен, что производительность будет лучше, если я протестирую ее в кластерной среде, но я не уверен, что она может завершиться менее чем за 10 секунд.

Пожалуйста, посоветуйте способ повышения производительности.

Комментарии:

1. Если вы выполняете только вставки, то ввод-вывод дисковой подсистемы, скорее всего, будет вашим ограничивающим фактором. Если панель мониторинга ML (в разделе «Скорости и нагрузки») показывает высокую нагрузку, то диск / ввод-вывод в вашей тестовой среде превышен, и вы мало что можете сделать, кроме как сделать вашу тестовую среду более похожей на вашу производственную среду. Кроме того, ML рекомендует настроить 6 лесов. Это также может оказать некоторое влияние на производительность вставки.

2. Можете ли вы подробнее рассказать о данных, которые вы пытаетесь обработать, и о процессе приема? Почему вы использовали spawn в первую очередь, и почему вы включили CPF? Обратите внимание, что включение CPF активирует триггеры, что также замедляет вставки..

Ответ №1:

Я бы начал со сбора дополнительной информации. Что это за версия MarkLogic? На какой ОС она запущена? Какой процессор? Оперативная память? Что такое подсистема хранения? Сколько лесов подключено к базе данных?

Затем соберите показатели уровня операционной системы, чтобы увидеть, является ли одна из подсистем очевидным узким местом. Пока я не буду рассуждать дальше этого.

Комментарии:

1. Это виртуальная среда: 1. Marklogic 6 2. Linux 2.6.18-348.18.1.el5 3. процессор: 2 процессора, название модели: Intel (R) Xeon (R) CPU X5650 4. Оперативная память: 4G 5. хранилище: локальный диск 6. лес: 1 7. Показатели ОС: вы имеете в виду проверку ввода-вывода ОС при запуске теста? например, iostat

2. Отслеживайте активность всех подсистем под нагрузкой: CPU, RAM, disk, network. Для процессора и диска iostat -mxz 5 это хорошее место для начала. Удалите z , если ваш iostat его не поддерживает.

Ответ №2:

Если вам нужна быстрая загрузка, я бы не стал использовать xdmp: spawn для каждого отдельного документа и не использовал CPF. Но 2 минуты для документов 10k не обязательно звучат медленно. С другой стороны, я достиг скорости до 3 Кб / с, но без индексов диапазона, преобразований, чего бы то ни было. И очень быстрый диск (например, ssd)..

HTH!

Комментарии:

1. 1. Мне нужно, чтобы это закончилось через 10 секунд. 2. У меня нет SSD.

Ответ №3:

Предполагается, что сервер с 2 сокетами, 128 ГБ-256 ГБ оперативной памяти, быстрый ввод-вывод (поддерживается 400-800 МБ / с)

  • Соответствующее количество лесов (12 первичных или 6 первичных / 6 вторичных)
  • Более 8 потоков при условии достаточного количества ядер
  • CPF выключен

Включите историю выполнения, посмотрите в метриках, и вы увидите, где находится узкое место.

SSD не требуется — просто пропускная способность ввода-вывода … которую обеспечивают несколько вращающихся дисков без проблем.

Комментарии:

1. Я тестировал на виртуальной машине # 1 Оперативная память: 4G # 2 процессор: 2 процессора, название модели которых «Intel (R) Xeon (R) CPU X5650» ark.intel.com/products/47922 /… # 3 Ввод-вывод: как проверить возможность ввода-вывода? Я могу получить ввод-вывод с помощью команды iostat, кажется, что он записывает со скоростью 2 МБ / с. # 4 Номер леса: только 1. Кажется, у меня только два процессора, и у меня только один лес. # 5 CPF: я не буду использовать сервер задач, чтобы CPF не повлиял на вставку документа.