Это очень зависит от системы, но шансы почти наверняка пройдут мимо произвольного обрыва и мы попадем в реальную проблему. Мне любопытно, какие эмпирические правила существуют для хорошего соотношения ОЗУ и дискового пространства. Мы планируем следующий раунд систем, и нам нужно будет сделать выбор в отношении оперативной памяти, твердотельных накопителей и количества каждого нового узла.
Но теперь о некоторых деталях производительности!
Во время обычного рабочего процесса одного запуска проекта, MongoDB имеет очень высокий процент записей (70-80%). Как только наступает второй этап конвейера обработки, его чтение становится чрезвычайно высоким, так как требуется дедуплицировать записи, идентифицированные в первой половине обработки. Это рабочий процесс, для которого «держите ваш рабочий набор в ОЗУ», и мы строим это предположение.
Весь набор данных постоянно подвергается случайным запросам из источников, полученных от конечных пользователей; хотя частота нерегулярна, размер обычно довольно мал (группы по 10 документов). Так как это связано с пользователем, ответы должны быть ниже порога «скучно сейчас» в 3 секунды. Этот шаблон доступа с меньшей вероятностью будет находиться в кэше, поэтому весьма вероятно, что попадет на диск.
Вторичный рабочий процесс - это высокая скорость чтения предыдущих прогонов обработки, которые могут быть днями, неделями или даже месяцами, и он запускается нечасто, но все же должен быть быстрым. До 100% документов в предыдущем прогоне обработки будут доступны. Я подозреваю, что никакое потепление кеша не может помочь с этим.
Размеры готовых документов варьируются в широких пределах, но средний размер составляет около 8К.
Большая часть обычной обработки проекта настоятельно рекомендует использовать реплики для распределения трафика чтения. Я читал в другом месте, что от 1:10 RAM-GB до HD-GB - хорошее эмпирическое правило для медленных дисков. Поскольку мы серьезно рассматриваем возможность использования гораздо более быстрых твердотельных накопителей, я хотел бы знать, существует ли подобное правило большого пальца для быстрых дисков.
Я знаю, что мы используем Mongo таким образом, чтобы кэшировать все не получалось, поэтому я ищу способы спроектировать систему, способную выдержать такое использование. Весь набор данные, вероятно , будет большой частью туберкулеза в течение полугода , и продолжает расти.