百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 网站模板(百分百源码网)>电脑软件>服务器> MongoDB 内存运用状况剖析
分享本文到:

MongoDB 内存运用状况剖析

发布时间:05/16 来源:未知 浏览: 关键词:

MongoDB是一个基于散布式文件存储的数据库。由C++说话编写。旨在为WEB利用供给可扩展的高机能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰硕,最像关系数据库的。他支撑的数据构造非常松懈,是相似json的bson格局,因而可以存储比较复杂的数据类型。Mongo最大的特色是他支撑的查询说话非常强大,其语法有点相似于面向对象的查询说话,险些可以实现相似关系数据库单表查询的绝大局部功能,而且还支撑对数据创立索引。

先 ps 一下看看。

复制代码 代码如下:

$ ps aux|grep mongod
mongo    26994  9.0 20.0 797264324 13243052 ?  Sl   May16 117:03 /path/to/mongodb/bin/mongod

总共 760G 多的虚拟内存,但是物理内存就只要 12.6G 。这个机器可是有 64G 内存的哦,这看起来 MongoDB 完全没用多少内存嘛。

再看看 free 的效果。

复制代码 代码如下:

$ free -m
             total       used       free     shared    buffers     cached
Mem:         64544      64279        265          0        134      60413
-/+ buffers/cache:       3731      60813
Swap:        31999          0      31999

内存倒是占得差不多了,根本都是 cached ,也就是文件系统缓存。MongoDB 是通过 mmap 方式让操纵系统来处置耐久化和缓存的。每个数据文件都直接映射到某个虚拟内存地址。访问的时候要是这一页不在内存中,系统就会尝试把这一页加载进来。这些内存都是算进 cache 里的。在 mongodb 的官方文档里有这样一个说法,top 或 ps 里的 RSIZE 段显示的是机器的全部内存大小,由于 mongodb 会尽可能占用全部内存。但是事实上,这些缓存并没有算在里面。因而在 top 或 ps 中是看不出 MongoDB 的现实内存运用状况的。而 free 虽然可以看到系统的内存运用状况,但是无法肯定这些内存里毕竟有多少真的是 MongoDB 运用的。

还好有人做了 vmtouch 这个工具。可以检查文件在缓存中的状况,另外也可以把文件直接加载进缓存或者踢出去。只需要对 MongoDB 的所有数据文件检查一下缓存加载状况,就可以晓得 MongoDB 到底缓存了多少数据了。

复制代码 代码如下:

$ vmtouch -m4G /path/to/mongodb/data/
           Files: 256
     Directories: 3
  Resident Pages: 15465901/100219772  58G/382G  15.4%
         Elapsed: 4.072 seconds

这里 -m4G 是 vmtouch 检查的文件大小限定。MongoDB 的数据文件比较大,平常会超过默许的 500M。这样看来,缓存用了 58G,这还差不多。Resident Pages 左侧的数字是页的数目,页的数目乘以文件系统页大小才是内存运用量。页的大小可以通过

复制代码 代码如下:

getconf PAGESIZE

查看,平常是 4096,也就是 4KB。

MongoDB 在 NUMA 的机器上运转,并且内存被牢固到一个 node 的时候,会有一个告诫

复制代码 代码如下:

WARNING: You are running on a NUMA machine.
We suggest launching mongod like this to avoid performance problems:
numactl –interleave=all mongod [other options]

或许是以为,这种状况下只能用上一个节点的内存。但 MongoDB 的缓存是由操纵系统治理的。NUMA 似乎对此并没有影响。而内存不太小的时候 MongoDB 自身很难用掉一个节点的内存。这种状况下,是否开启 numactl –interleave=all 作用已经不大了。能做的或许只能是加内存,sharding,或者换 ssd 了。

出处:http://xiezhenye.com/2013/05/mongodb-%e5%86%85%e5%ad%98%e4%bd%bf%e7%94%a8.html

热门标签:dede模板 / destoon模板 / dedecms模版 / 织梦模板
责任编辑:57NNf
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有153人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助



订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板