Здравствуй,
Мне было интересно, какова была хорошая установка для AWS / MongoDB с точки зрения машин и размеров их дисков.
Текущая настройка
Вопросы
План использования
Моя база данных должна обеспечивать скорость 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 ГБ, но в противном случае вы увидите значительное снижение производительности при обращении к диску.