mongodb一些优化点

1、dirty百分比

db.serverStatus().wiredTiger.cache['tracked dirty bytes in the cache']

这个值是脏数据驻留在wiredTiger cacheSize 里面的脏数据大小,如果这个值对比wiredTiger cacheSize 的设置的内存值 超过 5%的容量,同时通过工具 mongostat持续观察其中的指标dirty如果此时你的dirty持续在20%,会得出两个可能:

  1. 你的磁盘系统不能满足当前的业务在MONGODB中的使用
  2. 你的内存有必要进行添加了

2、缓存命中率

  • 通过定时获取下面两个参数的增量,然后进行计算
db.serverStatus().wiredTiger.cache['pages requested from the cache']
db.serverStatus().wiredTiger.cache['pages read into cache']

我们以 2秒为一个取数点,将 page requested from the cache 的值减去上一个 2秒的值,作为一个增量,通过针对 page read into cache 也是一样的处理方式。然后将第一个值 / 第二个值 * 100 = buffer cache hit ratio 来查看当前数据在cache 中的命中率。

3、磁盘使用率

4、oplog集合的大小

5、备份方案

  • 延迟同步
cfg=rs.conf();
cfg.members[1].priority=0 # 不用在选举
cfg.members[1].slaveDelay=3600 # 延迟时间
rs.reconfig(cfg);
  • 定时全量备份

mongodb以及周边基础知识

  • mongodb 默认设置内存的方式:(实际的内存减 - 1GB)/ 2 ,原因:MONGODB 的数据是压缩应存储到磁盘上的,所以数据需要缓冲到LINUX 的系统缓冲CACHE 中,加速文件的解压和获取
  • mongostat字段含义:https://www.lmlphp.com/user/16517/article/item/575098/,看这个链接吧,懒得复制了;不过,这句话应该是错的: conn: 打开连接的总数,是qr,qw,ar,aw的总和,截图为证吧。。
    1673258568(1).png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容