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

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

mongodb 参数优化的更多相关文章

  1. WiredTiger运行时参数优化

    MongoDB的WiredTiger存储引擎,用了一段时间,遇到了一些问题,通过优化WT参数,也解决了一些问题,做个小结. cache_size 指定WT存储引擎内部cache的内存用量上限. 需要注 ...

  2. linux下TCP/IP及内核参数优化调优(转)

    Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等. 如下配置是写在sysctl.con ...

  3. Windows下tcp参数优化

    Windows系统下的TCP参数优化2013-04-25      0 个评论       作者:最初的幸福ever收藏     我要投稿Windows系统下的TCP参数优化 TCP连接的状态与关闭方 ...

  4. paper 62:高斯混合模型(GMM)参数优化及实现

    高斯混合模型(GMM)参数优化及实现 (< xmlnamespace prefix ="st1" ns ="urn:schemas-microsoft-com:of ...

  5. MySQL配置文件my.cnf参数优化和中文详解

    Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的 ...

  6. MongoDB 性能优化五个简单步骤

    MongoDB 一直是最流行的 NoSQL,而根据 DB-Engines Ranking 最新的排行,时下 MongoDB 已经击败 PostgreSQL 跃居数据库总排行的第四位,仅次于 Oracl ...

  7. 内核参数优化/etc/sysctl.conf

    net.nf_conntrack_max = 65536000net.netfilter.nf_conntrack_tcp_timeout_established = 1200net.ipv4.tcp ...

  8. Limit参数优化MySQL查询的方法

    在做一些查询时,总希望能避免数据库引擎做全表扫描,因为全表扫描时间长,而且其中大部分扫描对客户端而言是没有意义的.那么,在mysql中有那些方式是可以避免全表扫面?除了通过使用索引列或分区等方式来进行 ...

  9. MySQL参数优化

    目前针对MySQL数据库进行了一些参数优化,具体如下: my.ini / my.cnf 参数说明 #使用查询缓存 query_cache_size=100M                     # ...

随机推荐

  1. 学习pano2vr制作html5全景笔记

    demo截图: demo下载: 百度网盘:http://pan.baidu.com/s/1o8yBwIA 密码:nf62(启服务端查看); 我制作是全屏定点360的全景页面,使用pano2vr软件制作 ...

  2. OpenCV3编程入门读书笔记5-边缘检测

    一.边缘检测的一般步骤 1.滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能. 2.增强 增强边缘的基础是确定图像各 ...

  3. 2019 Android 高级面试题总结 从java语言到AIDL使用与原理

    说下你所知道的设计模式与使用场景 a.建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 使用场景比如最常见的AlertDialog,拿我们开发过程中举例,比如C ...

  4. django admin 修改批量操作内容

    @admin.register(Template) class TemplateAdmin(admin.ModelAdmin): list_display = ( 'cn_title', 'start ...

  5. django请求生命周期,FBV和CBV,ORM拾遗,Git

    一.django 请求生命周期 流程图: 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post, ...

  6. SQL数据库分页OFFSET FETCH NEXT

    SELECT * FROM dbo.UMS_System_Menu AS USM ORDER BY USM.MenuCode OFFSET ROW --跳过前10条 ROW ONLY --取20条

  7. newinstance和new的区别

    newinstance将对象创建分为两个步骤,解耦的手段,先调用class.forName加载类,然后再去实例化它 new可以不用加载,不是一定 newinstance作为依赖注入 https://b ...

  8. 实时流式计算框架——JStorm

    1.本地调试 a.步骤:生成Topology——实现Spout接口——实现Bolt接口——编译运行 b.加入依赖 <!-- JStorm --> <dependency> &l ...

  9. oracle 删除重复记录

    查询及删除重复记录的SQL语句   1.查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断   select * from 表 where Id in (select Id from 表 g ...

  10. MySql思维导图