如何计算我的应用程序需要多少内存?

参与6

2同行回答

Luga LeeLuga Lee系统架构师None
Starting in 3.4, the WiredTiger internal cache , by default , will use the larger of either:50 % of RAM minus 1 GB, or256 MB显示全部

Starting in 3.4, the WiredTiger internal cache , by default , will use the larger of either:

50 % of RAM minus 1 GB, or
256 MB

收起
互联网服务 · 2020-03-10
浏览1564
lxuelxue数据库管理员某互联网公司
您需要的内存大小取决于几个因素,包括但不限于: · 数据库存储和 working set 之间的关系。 · 操作系统的 LRU 缓存淘汰策略(最近最少使用) · Journaling 预写日志的影响 · page fault (缺页中断)的数量或速率以及其他 MongoDB Cloud Manager 检测发现何时需要更多...显示全部

您需要的内存大小取决于几个因素,包括但不限于:
· 数据库存储和 working set 之间的关系。
· 操作系统的 LRU 缓存淘汰策略(最近最少使用)
· Journaling 预写日志的影响
· page fault (缺页中断)的数量或速率以及其他 MongoDB Cloud Manager 检测发现何时需要更多的内存
· 每个数据库连接线程最多需要 1 MB 的 RAM 。

从磁盘加载数据到内存时, MongoDB 交给操作系统进行。它只是通过内存映射其所有数据文件,并依赖于操作系统来缓存数据。当内存不足时,操作系统通常会从内存中驱逐最近最少使用的数据。例如,如果客户端访问索引比访问文档更频繁,则索引更可能保留在内存中,但这取决于您的特定用法 。

要计算所需的内存大小,您必须计算 working set 大小或客户最常使用的数据部分。这取决于您的访问模式,您拥有的索引以及文档的大小。由于 MongoDB 每个连接使用一个线程,因此每个数据库连接也需要最多 1 MB 的内存,无论是活动还是空闲 。

如果 page fault 很少发生,那么表示您的 working set 就能放入内存。如果 page fault 数量比较高,则可能会降低性能。对于 SSD 固态硬盘而言,这个影响相比机械磁盘就不那么重要了 。

收起
互联网服务 · 2020-03-11
浏览1601

提问者

yeliye
数据库管理员某农信
擅长领域: 数据库大数据服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-03-10
  • 关注会员:3 人
  • 问题浏览:2791
  • 最近回答:2020-03-11
  • X社区推广