Насколько я знаю, кеш MongoDB работает в оперативной памяти.

Тогда, если я увеличу wiredTigerCacheSizeGB на столько же, сколько все данные на диске, будет ли он работать так же быстро, как db в памяти?

Если нет, то какая разница?

0
최승환 23 Янв 2021 в 16:55

3 ответа

Лучший ответ

enter image description here

См. механизм хранения в памяти и WiredTiger Storage Engine

(В памяти) Избегая дискового ввода-вывода, механизм хранения в памяти обеспечивает более предсказуемую задержку операций с базой данных.

Помните, что при настройке wiredTigerCacheSizeGB вы ограничены 10000 ГБ. Также следует отключить ведение журнала и установить для storage.syncPeriodSecs значение 0 для повышения производительности WiredTiger. Но, тем не менее, WiredTiger должен создать хотя бы WiredTiger.wt и WiredTiger.turtle ...

PS. Думаю, эта ссылка может дать ответ ваш вопрос

0
Ali Can 14 Фев 2021 в 10:59

Если вы установите для wiredTigerCacheSizeGB достаточно высокое значение, чтобы хранить все ваши данные, то все ваши чтения будут выполняться из кеша. Записи обновят кеш, а также будут записаны в хранилище.

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

Поэтому, если ваша рабочая нагрузка в основном связана с чтением, то большой кеш будет вести себя так же, как БД в памяти. Если в вашей рабочей нагрузке много операций записи, то конфигурация большого кеша может быть медленнее, поскольку требуется запись на диск.

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

0
Keith Smith 12 Фев 2021 в 17:31

Я не могу ответить на все ваши вопросы.

Кэш считывает данные с диска и сохраняет их в ОЗУ. Когда вы снова обращаетесь к таким данным, вы читаете их из ОЗУ, а не снова с диска, что было бы намного медленнее.

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

База данных MongoDB в памяти помещает все данные только в ОЗУ, она не читает и не записывает ничего с диска, кроме некоторых данных журналов. Когда вы останавливаете процесс MongoDB в памяти, все данные теряются.

Механизм хранения wiredTiger - это формат данных, используемый MongoDB для постоянного хранения данных на диске.

0
Wernfried Domscheit 23 Янв 2021 в 14:39