资讯专栏INFORMATION COLUMN

常用Mongodb安装配置规范建议

IT那活儿 / 1392人阅读
常用Mongodb安装配置规范建议

以下内容来源于官方文档建议和个人运维工作总结。


[
一、硬件配置

]





  1. 磁盘配置:强烈建议使用SSD,磁盘阵列,建议使用Raid10,不建议raid 5,如果使用集中存储,并且架构为复制集,要求不同的节点使用不同的san。

  2. 网络配置:集群节点间无心跳,网卡建议使用bond,绑定模式选用6。

    [
    二、操作系统配置
    ]

操作系统建议使用Linux操作系统。RHEL7/CentOS7,暂不建议使用8。

  1. 环境依赖包要求:glibc、libcurl、openssl

  2. 关闭numa

  3. 关闭selinux

  4. 关闭防火墙

  5. 修改磁盘调度策略,ssd磁盘,使用noop或者deadline策略,虚拟机使用noop, 修改方法:修改grub.conf,加入 elevator=noop

  6. 修改磁盘预读值:WT引擎建议配置8-32,命令:blockdev --setra 8 /dev/sda

  7. dbpath所在目录的文件系统,强烈建议使用XFS,并且使用noatime选项挂载

  8. 禁用透明大页

  9. 禁用NetworkManager和tuned服务

  10. 软件安装:建议将参数文件放到/etc/mongodb下;建议将数据库软件放到/usr/local/mongodb/version_id下;数据和日志放在独立文件夹

  11. 系统内核参数:

vi/etc/sysctl.conf

fs.file-max=98000

kernel.pid_max=64000

vm.max_map_count=12800

kernel.threads-max=64000

vm.swappiness=5

vm.min_free_kbytes= 512000

vm.dirty_ratio= 80

vm.dirty_expire_centisecs= 500

vm.dirty_writeback_centisecs= 100

  1. limit配置

cat/etc/security/limits.conf

---nofile是nproc的两倍

mongosoft nofile 64000 

mongohard nofile 64000 

mongosoft nproc 32000 

mongohard nproc 32000

注:以上内核参数和limit配置满足一般业务需求,如果并发和负载特别大,再根据实际情况调整。


[
三、数据库参数配置
]


systemLog:

verbosity: 0

destination: file/syslog

path: "/tmp/mongod.log"

logAppend: true

logRotate: rename/reopen


processManagement:

fork: true

pidFilePath: "/tmp/mongo.pid"

net:

port: 27017

bindIp: localhost,/tmp/mongod.sock

#bindIpAll: true

maxIncomingConnections: 3000

unixDomainSocket:

enabled: true # 默认True

pathPrefix: "/tmp" # 路径,默认为/tmp

serviceExecutor: synchronous --该参数默认值是同步模式,如果并发和负载特别大,建议修改为异步模式

security:

keyFile: "/etc/mongodb/keyFile"

clusterAuthMode: keyFile

authorization:enabled  启用认证


operationProfiling:

mode: slowOp

slowOpThresholdMs: 200

storage:

dbPath: "/tmp/test"

journal:

enabled: true

commitIntervalMs: 100

directoryPerDB: true

engine: wiredTiger

wiredTiger:

engineConfig:

cacheSizeGB: 1  #默认1/2物理内存,如果一个server上有多个mongodb实例应当根据情况配置,一般内存配额的60-70%

journalCompressor: snappy # journaldata压缩算法snappy/zlib,默认snappy

directoryForIndexes: true #索引和collections是否分开存储到不同文件夹,默认false

collectionConfig:

blockCompressor: snappy # data压缩算法snappy/zlib/none,默认snappy

indexConfig:

prefixCompression: true # 是否压缩索引数据,默认true

setParameter:

:

:


## for rep

replication:

oplogSizeMB:

replSetName:

enableMajorityReadConcern:true  ##如果是PSA架构,需要修改为false

## for sharding

sharding:

clusterRole:   # configsvr/shardsvr

### for mongos

sharding:

configDB:   #/cfg1.example.net:27019,cfg2.example.net:27019

cloud:    ###4.0以上版本禁用monitor

monitoring:

free:

state: off


[
四、数据库安全
]


MongoDB支持无密码连接,但生产中必须启用密码认证;副本集必须使用keyfile;为便于管理,管理用户及普通用户均在admin数据库进行认证。


社区版本只能采用逻辑备份,但是mongodump备份性能较差,建议采用多个从库的方式,确保数据安全,同时可以结合文件系统快照等功能进行备份。


[
五、数据库高可用架构
]

Mongodb支持复制集和分片集群架构,本文不做过多的描述。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130121.html

相关文章

  • swoolefy-基于swoole扩展实现的高性能的常驻内存型API和Web应用服务框架

    摘要:是一个基于扩展实现的轻量级高性能的常驻内存型的和应用服务框架高度封装了,,服务器,以及基于实现可扩展的服务,同时支持包方式安装部署项目。基于实用,抽象事件处理类,实现与底层的回调的解耦,支持同步异步调用,内置等常用组件等。 swoolefy swoolefy是一个基于swoole扩展实现的轻量级高性能的常驻内存型的API和Web应用服务框架,高度封装了http,websocket,ud...

    lewinlee 评论0 收藏0
  • MongoDBmongodb安装常用操作命令

    摘要:二中常用命令显示数据库列表显示当前数据库中的集合类似关系数据库中的表显示用户切换当前数据库,如果数据库不存在则创建数据库。注意操作同时可以创建数据库,如果一个不存在的数据库名,则执行后,会创建对应数据库。如果指定字段,则会更新该的数据。 ..............................................................................

    fish 评论0 收藏0
  • 【推荐】最新200篇:技术文章整理

    摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...

    BicycleWarrior 评论0 收藏0
  • 【推荐】最新200篇:技术文章整理

    摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...

    tommego 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<