4

我们转移到了wiredtiger 并看到内存使用率上升,mongodb 使用了系统上90% 的内存。它似乎在慢慢地皱起。在wiredtiger 之前,当我们在mongo 2.x 上使用mmap 时,内存占用率为8%。

我担心操作系统会杀死该进程。这是正常行为吗?

db.serverStatus() - https://gist.github.com/henryoswald/8ff9cf917e63c2e983dd

4

1 回答 1

3

mmap 和 WiredTiger 在使用内存的方式上有很大的不同。

而 mmap 实际上使用内存映射,因此数据库缓存实际上被视为 OS 中的缓存。

而 WiredTiger 使用在应用程序启动时定义的内存池。见文档

根据系统中的内存量,默认情况下它应该为 WiredTiger 池使用 1GB 或系统 RAM 的一半。(这可以解释从 8% 到 58% 左右的跳跃)

但它不应该是“慢慢爬到 90%”。这值得进一步调查。但为此,我们需要查看更多信息。喜欢db.serverStatus(),或者您用来查找内存使用情况的方法,或者您可以找到和共享的有关该服务器实例的任何其他内容。

于 2015-07-19T14:44:56.043 回答