我即将采用MongoDB进行新项目,我选择它是为了灵活性,而不是可扩展性,因此将在一台机器上运行它.从文档和Web帖子我不断阅读所有索引都在RAM中.这对我来说没有意义,因为我的索引很容易大于可用RAM的数量.
任何人都可以分享对索引/ RAM关系的一些见解,当单个索引和我的所有索引都超过可用RAM的大小时会发生什么?
我使用mongo存储日志文件.mongoDB和mysql都在同一台机器上运行,虚拟化mongo env不是一个选项.因为日志表变得非常快,我恐怕很快就会遇到性能问题.有没有办法限制mongo的常驻内存,以便它不会占用所有可用内存并过度减慢mysql服务器?
数据库机:Debian'lenny'5
其他解决方案(请评论):
由于我们需要所有历史数据,我们不能使用上限集合,但我也在考虑使用转储和删除旧数据的cron脚本
我应该考虑使用其他论坛上建议的较小的密钥吗?
MongoDB的使用内存映射文件,当我使用很长一段时间,我看到的空闲内存已经在Ubuntu留下更少的命令"自由-m"和高速缓存使用了很多.那么杀掉Mongodb的缓存还是要花很多钱?我该如何发布缓存?
您可以在RAM上创建ramdisks,tmpfs等,以创建用于不同应用程序的分区.
在以下帖子中发布了类似的一个:如何将MongoDB用作纯内存数据库(Redis样式)
MongoDB使用驻留内存来处理热数据.
因此1)使用ramdisk是否复制相同数据的ram用法?
2)有没有办法禁用驻留内存的使用?
编辑:我们可以将托管操作系统视为CentOS或Ubuntu服务器,因为它们是最重要的服务器.
我有以下配置:
Redis 和 Mongodb 都用于存储海量数据。我知道 Redis 需要将所有数据保存在 RAM 中,我对此没有意见。不幸的是,Mongo 开始占用大量 RAM,一旦主机 RAM 已满(我们在这里谈论的是 32GB),Mongo 或 Redis 就会崩溃。
我已经阅读了以下有关此问题的先前问题:
it's completely okay to limit the WiredTiger cache size, since it handles I/O operations pretty efficientlyMongoDB uses the LRU (Least Recently Used) cache algorithm to …