mongodb 参数优化

1.大部分IO操作为随机IO,建议采用SSD或PCIE,普通硬盘RAID10

2.IO调度算法。普通磁盘:deadline避免IO请求出现“饥饿”现象,SSD/PCIE:noop简单的先进先出处理请求。

  echo "noop" > /sys/block/sdxxxx/queue/scheduler        #SSD

  echo "deadline" > /sys/block/sdxxxx/queue/scheduler     #普通盘

  并添加至 /etc/rc.local 

  cat /sys/block/sdxxxx/queue/scheduler    #查看

3.文件系统选择XFS

4.磁盘挂载

  vim /etc/fstab

  /dev/vdc  /data1    xfs  defaults,noatime,nodiratime       1 2

5.内存优化

  关闭大叶内存   echo "never" > /sys/kernel/mm/transparent_hugepage/enabled

         echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

  numal设置        echo 0 > /proc/sys/vm/zone_reclaim_mode   

       并添加到/etc/rc.local

       mongodb节点启动 sudo -u mongo numactl --interleave=all mongod -f mongo.cnf

6.NTP时间同步

7.进程数限制

  vim /etc/security/limits.conf

  * soft nofile 65535

  *  hard nofile 65535

       *  soft   nproc 65535

       *  hard  nproc 65535

       *  soft    stack  1024

       *  hard   stack   1024

  vim /etc/security/limits.d/90-nproc.conf

  *  soft   nproc   65535

8. mongo性能参数

  journal日志和data分开,journal不支持直接指定目录,可以创建软链接解决。

  wiredTigerCacheSizeGB=x  尽可能覆盖所有热数据

  storage.dirctoryPerDB=true  数据文件单独存储

  wiredTigerDirectoryForIndexes=true 索引文件单独存储

  wiredTigerCollectionBlockCompressor=snappy 集合压缩存储模式 zlib压缩最高

  journal=true

  安全参数

  nohttpinterface=true (<3.6版本)

  bind_ip_all_true (>=3.6) 配置节点访问范围

  keyFile=/dbPath/keyFile 指定集群间认证模式

    openssl rand -base64 66 -out keyFile

    chmod 600 keyFile && chown mongo.mongo keyFile

  setParameter=enableLocalhostAuthBypass=1  启用本地认证

  maxConns=65536 控制最大连接数

参数配置模板

fork =true  #后台运行

port =7777

quiet =true  # 方便排查问题

dbpath = /data1/xxxx

logpath=/data1/xxxx/xxx.log

logappend =true

journal=true

nohttpinterface=true   #3.6后已经废弃

directoryperdb=true

wiredTigerDirectoryForIndexes=true

bind_ip_all =true

maxConns=65536

profile=1  # 日志记录级别

slowms=500    #慢查询记录时间(毫秒)

replSet=rs   #备份集

oplogSize=40960   #oplog大小

keyFile=/data1/xxxx/keyFile 

setParameter=enableLocalhostAuthBypass=1

storageEngine=wiredTiger

wiredTigerCacheSizeGB=1

wiredTigerCollectionBlockCompressor=snappy

#shardsvr=true   #配置节点角色  (>=3.4 shard节点专用)

#configsvr=true    #指定config节点角色  (>=3.4 config节点专用)

#configdb=mschost    #指定config配置信息 (mongos 节点专用)

原文地址:https://www.cnblogs.com/emmm233/p/10777849.html