我们转移到了wiredtiger 并看到内存使用率上升,mongodb 使用了系统上90% 的内存。它似乎在慢慢地皱起。在wiredtiger 之前,当我们在mongo 2.x 上使用mmap 时,内存占用率为8%。
我担心操作系统会杀死该进程。这是正常行为吗?
db.serverStatus() - https://gist.github.com/henryoswald/8ff9cf917e63c2e983dd
我们转移到了wiredtiger 并看到内存使用率上升,mongodb 使用了系统上90% 的内存。它似乎在慢慢地皱起。在wiredtiger 之前,当我们在mongo 2.x 上使用mmap 时,内存占用率为8%。
我担心操作系统会杀死该进程。这是正常行为吗?
db.serverStatus() - https://gist.github.com/henryoswald/8ff9cf917e63c2e983dd
mmap 和 WiredTiger 在使用内存的方式上有很大的不同。
而 mmap 实际上使用内存映射,因此数据库缓存实际上被视为 OS 中的缓存。
而 WiredTiger 使用在应用程序启动时定义的内存池。见文档
根据系统中的内存量,默认情况下它应该为 WiredTiger 池使用 1GB 或系统 RAM 的一半。(这可以解释从 8% 到 58% 左右的跳跃)
但它不应该是“慢慢爬到 90%”。这值得进一步调查。但为此,我们需要查看更多信息。喜欢db.serverStatus()
,或者您用来查找内存使用情况的方法,或者您可以找到和共享的有关该服务器实例的任何其他内容。