mongodb 1 分钟吃掉 48G

led*_*edy 1 memory mongodb

在 mongodb 中,我使用这个集合:

Size     55.93g 
Data Size    39.82g
Storage Size 41.08g 
Extents  53 
Indexes  4 
Index Size   9.64g
Run Code Online (Sandbox Code Playgroud)

mongdb 需要几秒钟才能启动这个单个集合,并且专用服务器上的所有 48GB RAM 都没有了。

更糟糕的是,这台机器上还有一个mysqld+nginx/fcgi,应该允许一起使用至少24GB。即剩余的 24GB,对于 mongod 来说足够了!

但是,它并没有以公平的方式共享。每个人都说 mongod 的内存是由操作系统管理的,如果其他进程需要 RAM,则会为其他进程释放不必要的空间。在我的机器上,它没有释放 RAM。怎么了?

自由

             total       used       free     shared    buffers     cached`
Mem:      49559136   49403908     155228          0      57284   47247564
-/+ buffers/cache:    2099060   47460076
Swap:      8008392        164    8008228
Run Code Online (Sandbox Code Playgroud)

Chr*_*rin 7

正如您在 free 的输出中看到的那样,缓存了 47460076 个字节。如果需要,他们会被释放。别担心你有足够的内存,mongoDB 不会吃它。它只需要一点 ram,当其他应用程序真正需要它时,它会立即释放。