返回顶部
首页 > 资讯 > 数据库 >mongodb的内存总结
  • 122
分享到

mongodb的内存总结

2024-04-02 19:04:59 122人浏览 八月长安
摘要

纯手打,只是总结了通过多种方式查看mongoDB的内存使用情况,并没能提出有效的减少monGodb的内存的方法。都说mongodb吃内存比较厉害,确实很厉害,我的数据级别到达了 4千万,数据量大概是140G

纯手打,只是总结了通过多种方式查看mongoDB的内存使用情况,并没能提出有效的减少monGodb的内存的方法。


都说mongodb吃内存比较厉害,确实很厉害,我的数据级别到达了 4千万,数据量大概是140G,几天下来的话,130G的内存盘,到了60%,没有找到很好的办法前,每次都是重启mongodb,新手,我也不太清楚这个数据量是处于一个怎样的位置,有怎样的优良的解决办法,知道的麻烦告知一下,跪谢。


为啥这么吃内存呢,mongodb使用的是内存映射存储引擎,即Memory Mapped Storage Engine,简称MMAP,MMAP可以把磁盘文件的一部分或全部内容直接映射到内存,这样文件中的信息位置就会在内存中有对应的地址空间,把磁盘io操作转换成内存操作,

但坏处是你没有方法很方便的控制MongoDB占多大内存,事实上MongoDB会占用所有能用的内存,所以最好不要把别的服务和MongoDB放一起。之所以会有这个总结,就是因为曾经将WEB服务与mongodb放在一起,导致负载间歇性的剧增,web服务直接被服务器自动重启了,当然这是后话。


如果想知道mongodb的内存使用情况,可以有一些几个操作:

  1. top

mongodb的内存总结

shift+m,如果不出意外的话,mongodb应该居于首位了,

VIRT:虚拟内存

RES:实际使用内存

%MEM:内存使用比

刚重启过,内存占用还不算多



2.mongostat

mongodb的内存总结

mapped:映射到内存的数据大小,

vsize:虚拟内存,是mapped的2倍

res: 实际使用的内存,如果res经常突然下降,去查查是否有别的程序狂吃内存

conn:当前的连接数

这里的vsize,res与top的一致,conn如果一直都很高的话,也是有问题的,lockedb如果很高的话(经常超过),说明有问题很大了,曾经因为很多python脚本规定时间跑不完,导致连接一个接着一个,最终lockdb到了50% 


3.db.stats()

mongodb的内存总结

db:当前数据库

collections:当前数据多少张表

objects:当前数据库所有表多少条数据

dataSize:所有数据的总大小

storageSize:所有数据占的磁盘大小

indexes:索引

indexSize:索引大小

fileSize:预分配给数据库的文件大小


其实这个并不能说显示内存的什么情况,只能说能显示整个数据库的一个状态status



4.db.serverStatus()

mongodb的内存总结



这个命令在单独的个别db中,并不能显示出任何结果,需要在admin 这个db中才有效,测试可以看到很多信息显示,如connections,current为当前的连接,available为可用的连接

我们常用的话,不会显示这么多的信息,一般需要什么就显示什么。如内存使用情况


5.db.serverStatus().mem

mongodb的内存总结

virtual:虚拟内存的大小

mapped:映射到内存的数据大小


这里虚拟内存是mapped的两倍,是因为我们开启了Journal日志,需要在内存中多映射一次,大概就是它的两倍了。如果关闭Journal日志,虚拟内存大小将和mapped大小相当


我常用的大概就是top和mongostat,每次看到内存比较大的时候,采用的办法就是重启服务,但是这并不能解决问题,只是暂缓问题,有解决办法的麻烦告知一声,跪谢。

您可能感兴趣的文档:

--结束END--

本文标题: mongodb的内存总结

本文链接: https://lsjlt.com/news/40128.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mongodb的内存总结
    纯手打,只是总结了通过多种方式查看mongodb的内存使用情况,并没能提出有效的减少mongodb的内存的方法。都说mongodb吃内存比较厉害,确实很厉害,我的数据级别到达了 4千万,数据量大概是140G...
    99+
    2024-04-02
  • MongoDB 内存管理相关总结
    目录MongoDB的内存用在哪儿?如何限制MongoDB对内存的使用?cacheSizeGB参数配置的注意事项如何查看内存使用情况?MongoDB的内存用在哪儿?  &nb...
    99+
    2024-04-02
  • mongodb 内存使用小结
        mongodb 内存使用     mongodb通过把文件mapp到内存来访问数据,在os 层可以使用top 命令查看相应的process ,换句访问的文件越多,process 也越多,使用的内存也越多,也可以DB内也可以使用命...
    99+
    2015-07-03
    mongodb 内存使用小结
  • java内存优化的方法总结
    1、不必要的自动装箱。 自动装箱是将基础数据类型转换为相应的复杂类型,在HashMap的追加删除调查中充满了自动装箱问题,因此尽量避免HashMap代替SparseArray和Arr...
    99+
    2024-04-02
  • Mongodb学习总结
    Mongodb相关操作总结 2020/4/2 Mongodb使用的是类似与json字符串的形式存储数据 [ { key:value }, { key:value }, ] Mongodb使用了不存在的对...
    99+
    2019-08-19
    Mongodb学习总结
  • Android查看内存命令总结
    ① adb shell df -h 查看分区情况 ② du -sh * 查询目录的磁盘使用空间 ③ dumpsys devicestoragemonitor 显示设备内存信息 ④ pm list...
    99+
    2023-08-31
    Android 查看内存命令
  • MongoDB知识点总结
    一:MongoDB 概述    一、NoSQL 简介        1. 概念:NoSQL(Not Only SQL的缩写),指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。用于超大规模数据的存储,数据存...
    99+
    2019-04-03
    MongoDB知识点总结
  • Android 内存泄漏的几种可能总结
    Java是垃圾回收语言的一种,其优点是开发者无需特意管理内存分配,降低了应用由于局部故障(segmentation fault)导致崩溃,同时防止未释放的内存把堆栈(heap)...
    99+
    2022-06-06
    内存泄漏 Android
  • python内存泄漏排查技巧总结
    目录思路一:研究新旧源码及二方库依赖差异思路二:监测新旧版本内存变化差异问题所在进阶思路1.使用objgraph工具2.使用pympler工具首先搞清楚了本次问题的现象: 1. 服务...
    99+
    2024-04-02
  • MongoDB监控方法总结
    1).使用serverStatus在Shell中监控 使用mongo命令进入Shell客户端后使用命令: >db.serverStatus(); 主机名 >db.serverStatus...
    99+
    2024-04-02
  • MongoDB使用场景总结
    很多人比较关心 MongoDB 的适用场景,也有用户在话题里分享了自己的业务场景,比如 案例1 用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统...
    99+
    2024-04-02
  • C++技术中的内存管理:内存管理最佳实践总结
    内存管理在 c++++ 中至关重要,遵循最佳实践可避免内存泄漏和数据损坏等问题。这些实践包括:使用智能指针(如 unique_ptr 和 shared_ptr)自动化内存分配和释放。避免...
    99+
    2024-05-07
    c++ 内存管理 作用域
  • python切片中内存的注意事项总结
    1、由于 Python 列表的切片会在内存中创建新对象,因此需要注意的另一个重要函数是itertools.islice。 2、通常需要遍历切片,而不仅仅是在内存中静态创建它。isli...
    99+
    2024-04-02
  • JavaScript中内存泄漏的几种情况总结
    目录1.循环引用2.定时器未清除3.DOM元素未正确删除4.全局变量未清除5.闭包未正确使用6.事件未正确解绑7.大量数据未及时清理8.使用了第三方库或框架JavaScript 中的...
    99+
    2023-05-19
    JavaScript发生内存泄漏情况 JavaScript内存泄漏解决方法 JavaScript内存泄漏
  • Android 内存泄漏案例分析总结(Handler)
      在Android开发开发中,操作不当很容易引起内存泄漏,这里主要记录下平时遇到问题,包括:静态变量(也包含集合)、非静态的内部类、Handler、监听器,尤其是 Han...
    99+
    2022-06-06
    案例分析 内存泄漏 handler Android
  • Android 内存优化知识点梳理总结
    目录RAM 和 ROM常见内存问题内存溢出内存泄漏常见内存泄漏场景静态变量或单例持有对象非静态内部类的实例生命周期比外部类更长导致的内存泄漏Handler 导致的内存泄漏postDe...
    99+
    2024-04-02
  • Java的内部类总结
    目录前言一,成员内部类1,成员内部类的特点2,成员内部类的实现3,内部类和外部类的关系二,静态内部类1,静态内部类的特点2,比较成员内部类和静态内部类3,静态内部类的实现三,方法内部...
    99+
    2024-04-02
  • MongoDB使用总结系列2
     由于习惯了使用关系型数据库,觉得SQL语句对数据进行操作的灵活性不用多说,也很好理解和掌握,但是开始用MongoDB后,在客户端命令行中对一些数据进行操作时总是很别扭,总是提示语法错误,尽管Ro...
    99+
    2024-04-02
  • mongodb使用方面的一些总结
    所有查询写入尽量都带上一个超时时间大量写入时,使用批量接口建索引尽量指定为后台执行索引建得太多,对写入性能会有一定影响,所以建索引时,以能覆盖大部分数据的几个公共字段为准。确实有需要再加上一些没有覆盖到的字...
    99+
    2024-04-02
  • mongodb关于用户权限的总结
    官方文档 https://docs.mongodb.com/v3.6/reference/built-in-roles/ https://docs.mongodb.com/v3.6/referen...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作