Низкоприоритетные пакетные обработки на живой базе данных монго

Путем определения SetHandler application/x-httpd-php5 по всем запросам Вы предотвращаете mod_dir от выполнения его задания.

Я думаю, что это работало бы:

DirectoryIndex index index.php index.html
<Files *>
  SetHandler application/x-httpd-php5
</Files>
1
задан 30 November 2012 в 21:43
2 ответа

Невозможно «улучшить» выполняемые вами MR-задания - они будут давать результаты и т. Д., Но в конце (особенно если у вас плохо выбраны индексы) вы собираетесь повлиять на первичный путем удаления рабочего набора из ОЗУ, вызывая конкуренцию за ввод-вывод на диск и т. д. Поэтому я определенно рекомендую оптимизировать ваши индексы, чтобы избежать этого в максимально возможной степени.

С точки зрения облегчения нагрузки, вы можете запускать задания MR в памяти на вторичные вместо первичного. Все, что не требует вывода в базу данных, может быть выполнено таким образом (нет возможности записывать на вторичный сервер).

Если это не вариант, то другой подход, который я видел, включает предоставление данных доступным для " аналитика »специально для выполнения заданий MR, не трогая производственные БД. Существует несколько подходов к обновлению второго кластера: от моментальных снимков файловой системы и других методов пакетного типа до использования mongooplog или специального приложения и настраиваемых курсоров для репликации.

] Другой подход, который вы могли бы использовать, - это сегментирование, чтобы увеличить вашу емкость на ваших основных серверах. Если вы собираетесь пойти по этому пути, убедитесь, что вы используете как минимум 2.2 (2.2.2 на момент написания этой статьи), поддержка сегментированного MR была значительно улучшена с выпуском 2.2

1
ответ дан 4 December 2019 в 00:52

Как заявил Адам, на mongodb нет возможности запускать задания с более низким приоритетом. У нас была такая же проблема с дорогими заданиями, из-за которых другие запросы становились очень медленными. Мы решили эту проблему, скопировав данные, которые должны были обрабатываться MR-заданиями, в выделенную базу данных обработки данных на другом хосте.

Помимо методов mongooplog и tailable курсора для копирования данных между базами данных, упомянутых Адамом, вы также можете сделать это напрямую через javascript для копирования только необходимых вам данных (возможно, поэтапно). См. Это сообщение в блоге для получения дополнительной информации: Качество обслуживания в MongoDB . Вы также можете использовать mongodump и mongorestore mongodump .

0
ответ дан 4 December 2019 в 00:52

Теги

Похожие вопросы