Mongo使用26GB的内存,是不是很糟糕?

时间:2012-08-11 23:41:40

标签: mongodb

我最近试图对我的mongodb服务器进行基准测试,我猜它们有点过载,这是serverStatus()的结果:

SECONDARY> db.serverStatus().mem
{
    "bits" : 64,
    "resident" : 26197,
    "virtual" : 161106,
    "supported" : true,
    "mapped" : 79994,
    "mappedWithJournal" : 159988
} 

因此,如果我理解正确,MongoDB使用26GB的内存。如果我的服务器有32GB,并且它只运行mongoDb,那么获取新服务器并分割我的数据将是一个好主意?

2 个答案:

答案 0 :(得分:5)

MongoDB缓存的工作方式最终会使用任何可用的内存。当驻留部分与总内存相冲突时,性能将显着下降,但将取决于您的数据访问模式。如果不是所有东西都在内存中通常都可以,但是你想为你的工作集留出空间。有关一般建议和详细信息,请参阅Working Set SizeserverStatus().mem

答案 1 :(得分:3)

约书亚所说的一切都有一点需要注意,你要始终确保你已经启用了一些交换。否则你可能会遇到OOM Killer问题,请看这里:

http://www.mongodb.org/display/DOCS/The+Linux+Out+of+Memory+OOM+Killer

基本上,繁忙的MongoDB,有足够的数据将趋向于最大内存使用量,然后保持在那里。这并不表示问题本身,而且通常正是应该发生的事情。您应该look elsewherediagnose任何性能问题的来源。