在 mongodb 中我使用这个集合:
Size 55.93g
Data Size 39.82g
Storage Size 41.08g
Extents 53
Indexes 4
Index Size 9.64g
mongdb 只需几秒钟就能处理完这个单一集合,专用服务器上的所有 48GB RAM 都用完了。
更糟糕的是,这台机器上还有一个 mysqld+nginx/fcgi,总共应该允许使用至少 24GB。也就是说,剩下的 24GB 足够 mongod 使用了!
但是,它并没有公平地共享内存。大家都说 mongod 的内存是由操作系统管理的,如果其他进程需要内存,它会释放不必要的空间。在我的计算机上,它没有释放内存。出了什么问题?
自由的
total used free shared buffers cached`
Mem: 49559136 49403908 155228 0 57284 47247564
-/+ buffers/cache: 2099060 47460076
Swap: 8008392 164 8008228
答案1
正如您在 free 的输出中看到的,缓存了 47460076 字节。如果需要,它们将被释放。不用担心,您有足够的内存,mongoDB 不会占用它。它只是占用了一点内存,当其他应用程序真正需要它时,它会立即释放。