Сравнение производительности базы данных Mongodb различного размера - PullRequest
1 голос
/ 10 апреля 2019

Я прочитал рекомендацию о том, что размер базы данных MongoDB должен быть не более чем в два раза больше оперативной памяти на сервере. Я попытался протестировать эту рекомендацию с использованием https://github.com/brianfrankcooper/YCSB,, но на данный момент похоже, что снижение производительности происходит ТОЛЬКО при загрузке в базу данных (записи), а не при операциях чтения.

На моем сервере 192 ГБ ОЗУ, поэтому я сравнил две базы данных:

  • «Нормальный размер» загружен 300 000 000 объектов, что занимает 350 ГБ на диске.
  • «Большой размер» загружен 1200 000 000 объектов, что занимает 1,4 ТБ на диске.

db.stats сообщает, что размер индекса для базы данных «нормального размера» составляет 20 ГБ, а для большой БД - 60 ГБ.

Потребовалось 2300 секунд для загрузки небольшой базы данных. Из-за ограниченного объема памяти я ожидал, что загрузка базы данных «большого размера» займет более 4 раз. На самом деле загрузка базы данных «нормального размера» заняла 30310 секунд, что в 13 раз больше времени.

Я тестировал немногие - в соответствии с тестом YCSB:

При всей проверенной рабочей нагрузке и достоверности числа клиентских потоков считывание пропускной способности большой базы данных составляло +/- 10% от базы данных нормального размера.

Мои основные вопросы:

  • Что-то не так с подходом, который я выбрал для этого теста?
  • Каков фактически практический размер базы данных в соответствии с размером оперативной памяти на сервере?
  • Есть ли какие-то настройки, которые я должен выполнить, чтобы повысить пропускную способность при загрузке данных в базу данных?

1 Ответ

0 голосов
/ 16 апреля 2019

После некоторых исследований я понял, что мой тест, вероятно, недостаточно хорош.Это потому, что YCSB использует по умолчанию дистрибутив zipfian.Это означает, что мой набор данных в ОЗУ содержит данные для большинства запросов в тесте.

Кажется, что лучший тест был бы с "равномерным" распределением вместо zipfian.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...