2015-02-04 2 views
-1

У нас есть большая база данных, и я хотел бы объяснить, как мы ее установили. Итак, Хотелось бы узнать, какая у вас была архитектура, если вы были вместо нас.Профессиональная архитектура для обработки базы данных MongoDb 500 ГБ

  1. 560GB является общий размер/данные/папки MongoDb (Таким образом, чистый объем данных гораздо ниже)
  2. сервер баз данных и Web-сервер размещаются на одном выделенном сервере
  3. Нет SSD присутствует
  4. ОС Windows Server 2012
  5. MongoDb работает как один экземпляр, просто как EXE файл
  6. в качестве оценки, в среднем насчитывается около 50 findAndModify, 20 ВСТАВКА и 10 GET запросов в минуту
  7. Некоторых Вставок в том числе больших документов о 1Мбах
  8. Есть 2600 коллекции в базе данных
  9. Некоторых коллекций будут использоваться для хранения больших документов - veries размера между 10kb до 600KB - в редких случаях гораздо выше
  10. индексирования доступно на двух строковых клавишах
  11. Использование процессора составляет около 6%, а оперативная память практически бесплатна. 16 ГБ общий барабан и 4 ГБ

Теперь мы столкнулись с некоторыми проблемами, особенно в отношении скорости ввода-вывода. Вставка производительности удовлетворительна, однако производительность обновления и запросов низкая. Некоторые запросы будут сделаны в коллекции с документами 3M, которая объясняет, почему она бедна.

Итак, мы ищем работу. Каково ваше предложение и дайте нам знать, что является более эффективной архитектурой. Пожалуйста, рассмотрите бюджет в своих предложениях. Мы все знаем, что 10 отдельных SSD-серверов станут отличным решением. Наши текущие параметры:

  1. Добавление второго SSD HDD
  2. Добавить выделенный сервер кластера Линукс для базы данных - вращающийся диск HDD
  3. базы данных шардинге с VPS
  4. ДАЙТЕ НАМ ЗНАТЬ ДРУГИЕ ВАРИАНТЫ

Любые предложения, наши напоминания о ошибках и советы будут замечательными.

========================

ответа?

Индексация! Ошибка в индексировании была ключевой проблемой. Мы пересмотрели все наши ключи индексирования и все решило. Теперь ОЗУ используется на 100%, а производительность отличная. Мы слышим индексацию, и мы говорим, что все в порядке! однако требуется больше внимания.

+0

Это не изложенный вопрос. У вас есть конкретная проблема? Есть ли определенный запрос, который медленный? Как медленно? У вас есть указатель на этот запрос? – skelly

+0

@skelly Я хотел бы знать, насколько эта архитектура приемлема с вашей точки зрения? В порядке, или вы видите проблемы в нем. – Kousha

ответ

1

Я никогда не использовал MongoDB на Windows, но две вещи я хотел бы изменить:

  • MongoDB любит SSD-х.Перемещение данных в один
  • Рассмотрим расщепление полотна и MongoDB на двух серверах

только 4 Гб оперативной памяти, используемых бы странно, на системе Linux, но я не знаю о Windows.

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

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

Смежные вопросы