Например, у меня есть БД с 20 ГБ данных и только 2 ГБ оперативной памяти, своп отключен.Смогу ли я найти и вставить данные?Насколько плохой будет производительность?
лучше гуглить, но многие источники говорят, что когда ваш рабочий набор перерастает объем вашей оперативной памяти, производительность значительно упадет.
Возможно, интересным будет использование шардинга, а не добавление дополнительной памяти ..
http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage
http://highscalability.com/blog/2011/9/13/must-see-5-steps-to-scaling-mongodb-or-any-db-in-8-minutes.html
http://blog.boxedice.com/2010/12/13/mongodb-monitoring-keep-in-it-ram/
http://groups.google.com/group/mongodb-user/browse_thread/thread/37f80ff39258e6f4
Может ли MongoDB работать при размере базы данныхбольше, чем ОЗУ?
Что означает встраивание «рабочего набора» в ОЗУ для MongoDB?
Возможно, вы также захотите прочитать о4 квадрата в прошлом году:
http://highscalability.com/blog/2010/10/15/troubles-with-sharding-what-can-we-learn-from-the-foursquare.html
http://groups.google.com/group/mongodb-user/browse_thread/thread/528a94f287e9d77e
http://blog.foursquare.com/2010/10/05/so-that-was-a-bummer/
примечание:
вы сказали"своп выключен" ...?Зачем?У вас всегда должно быть достаточно места подкачки в системе UNIX!Swap-size = 1 ... 2-кратный размер оперативной памяти - хорошая идея.Использование быстрого раздела - хорошая идея.Действительно плохие вещи случаются, если в вашей UNIX-системе заканчивается ОЗУ и нет Swap… процессы просто умирают необъяснимо… это очень плохо!особенно в производстве.Диск дешевый!добавить щедрый раздел подкачки!: -)
Это действительно зависит от размера вашего рабочего набора .
MongoDB может работать с очень большой базой данных и все равно будет очень быстрым, если ваш рабочий набор меньшечем размер вашей оперативной памяти.
Рабочий набор - это набор документов, над которыми вы работаете, и индексы.
Вот ссылка, которая может помочь вам понять это: http://www.colinhowe.co.uk/2011/02/23/mongodb-performance-for-data-bigger-than-memor/