Назад | Перейти на главную страницу

Насколько хороша эта настройка MongoDB / EC2?

Здравствуй,
Мне было интересно, какова была хорошая установка для AWS / MongoDB с точки зрения машин и размеров их дисков.

Текущая настройка

Вопросы

  1. 20 ГБ слишком велик или слишком мало? Стоит, например, использовать 100Гб?
  2. Должен ли я сообщить mongodb об ограничении диска 20 ГБ (или другом)?
  3. Вы видите что-то плохое, чего я не вижу? Я новичок в mongodb и aws, но я в порядке, опытный SWE

План использования

Моя база данных должна обеспечивать скорость 100 запросов в секунду (в основном запись) и должна вырасти до 1 ТБ в течение следующих 3 лет. План состоит в том, чтобы добавить столько шардов, сколько необходимо, более или менее вручную (с помощью скриптов), когда мы увидим, что в базе данных требуется больше памяти.

Мы также запустим несколько mapreduce над этим и создадим несколько скриптов, которые будут агрегировать данные за последние 15 минут каждые 15 минут.

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

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

Спасибо, что рассказали мне, что вы об этом думаете.

Томас

Сначала ваши конкретные вопросы:

20 ГБ слишком велик или слишком мало? Стоит, например, использовать 100Гб?

Это полностью зависит от ваших требований к данным и от того, сколько документов вы собираетесь вставить. Если вы намереваетесь иметь 5 ГБ документов, тогда все будет в порядке, даже с накладными расходами на репликацию (oplog - 5% свободного места) и хранилище (всегда есть пустой файл, предварительно выделенный для каждой базы данных). Если вы планируете иметь 10–12 ГБ данных (и помните, что вам также нужно хранить индексы, журнал, журналы), я бы выбрал диск большего размера.

Поскольку вы говорите, что планируете вырасти до 1 ТБ в год, вы, вероятно, превысите 20 ГБ в течение месяца и в любом случае вам нужно будет увеличить диск, поэтому, вероятно, будет проще сразу перейти на 100 ГБ. При 1 ТБ в год, при условии постоянного роста, это даст вам только около 1 месяца комнаты (1 ТБ в год ~ = 83 ГБ в месяц).

Должен ли я сообщить mongodb об ограничении диска 20 ГБ (или другом)?

Нет, было улучшения в том, как он справляется с ситуацией, но MongoDB в настоящее время будет просто использовать все доступное пространство, пока его не останется - вам необходимо контролировать свое дисковое пространство независимо.

Вы видите что-то плохое, чего я не вижу? Я новичок в mongodb и aws, но я в порядке, опытный SWE

Никогда не используйте микро-экземпляры для чего-либо в производстве - в частности, не используйте их для серверов конфигурации. Ваши серверы конфигурации критически важны для работы сегментированного кластера. Но не нужно верить мне на слово - см. Стр. 6 обновленный технический документ Amazon:

Экземпляры T1.micro не рекомендуются для производственных развертываний MongoDB, включая арбитры, серверы конфигурации и менеджеры сегментов mongos.

Как правило, я бы рекомендовал прочитать технический документ и следовать содержащимся в нем рекомендациям - вы найдете рекомендации по настройкам Linux (опережающее чтение, огромные страницы и т. Д.), Хранилище, pIOPS и многое другое. Также стоит проверить Примечания к производству - некоторое дублирование, но оно обновляется чаще, чем whitepaper.

Наконец, получите некоторое представление о своем размер рабочего набора для вашей базы данных (на сегмент) - это будет определять, сколько оперативной памяти вам нужно, что действительно является ключом к выбору размера экземпляра на EC2 для MongoDB. Вам может хватить 8 ГБ, но в противном случае вы увидите значительное снижение производительности при обращении к диску.