【问题标题】:mongodb - wiredtiger memory usage growingmongodb-wiredtiger 内存使用量增长
【发布时间】:2015-07-19 14:04:44
【问题描述】:

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

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

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

【问题讨论】:

标签: mongodb wiredtiger


【解决方案1】:

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

而mmap实际上是使用内存映射,所以数据库缓存在操作系统中实际上算作缓存。

而 WiredTiger 使用在应用程序启动时定义的内存池。 see docs

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

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

【讨论】:

  • 感谢您的帮助,我已将 db.serverStatus() 添加到问题中。
  • @henry.oswald 也许你应该根据this bug更新到 3.0.4
  • 谢谢,我会试试的,所以我知道是什么导致您认为这可能是原因?
  • 好吧,您的设置 serverStatus 说您为 WT 缓存保留了大约 8GB。它目前使用较少。您说您的内存使用量正在缓慢增长。所有内存泄漏的迹象。而且你做了很多连接(20 天内几乎 1000 万)。如果每个连接都泄漏512B结构(没有检查大小),它是5GB。尽管如此,这仍然是一个猜测。但可能比浪费时间去证明它更容易尝试。
猜你喜欢
  • 2015-03-29
  • 2017-11-09
  • 2013-04-17
  • 2013-10-08
  • 2014-12-27
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 2014-02-25
相关资源
最近更新 更多