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

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

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  echo "noop" > /sys/block/vdc/queue/scheduler ,并添加至 /etc/rc.local

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

logappend =true

journal=true

nohttpinterface=true   #3.6已经废弃

directoryperdb=true

wiredTigerDirectoryForIndexes=true

bind_ip_all =true

maxConns=65536

profile=1  # 日志记录级别

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

replset=7777   #备份集

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 节点专用)

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄