以下内容来源于官方文档建议和个人运维工作总结。
]
磁盘配置:强烈建议使用SSD,磁盘阵列,建议使用Raid10,不建议raid 5,如果使用集中存储,并且架构为复制集,要求不同的节点使用不同的san。
网络配置:集群节点间无心跳,网卡建议使用bond,绑定模式选用6。
操作系统建议使用Linux操作系统。RHEL7/CentOS7,暂不建议使用8。
环境依赖包要求:glibc、libcurl、openssl
关闭numa
关闭selinux
关闭防火墙
修改磁盘调度策略,ssd磁盘,使用noop或者deadline策略,虚拟机使用noop, 修改方法:修改grub.conf,加入 elevator=noop
修改磁盘预读值:WT引擎建议配置8-32,命令:blockdev --setra 8 /dev/sda
dbpath所在目录的文件系统,强烈建议使用XFS,并且使用noatime选项挂载
禁用透明大页
禁用NetworkManager和tuned服务
软件安装:建议将参数文件放到/etc/mongodb下;建议将数据库软件放到/usr/local/mongodb/version_id下;数据和日志放在独立文件夹
系统内核参数:
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
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: ### for mongos sharding: configDB: cloud: ###4.0以上版本禁用monitor monitoring: free: state: off |
MongoDB支持无密码连接,但生产中必须启用密码认证;副本集必须使用keyfile;为便于管理,管理用户及普通用户均在admin数据库进行认证。
社区版本只能采用逻辑备份,但是mongodump备份性能较差,建议采用多个从库的方式,确保数据安全,同时可以结合文件系统快照等功能进行备份。
Mongodb支持复制集和分片集群架构,本文不做过多的描述。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/130121.html
摘要:是一个基于扩展实现的轻量级高性能的常驻内存型的和应用服务框架高度封装了,,服务器,以及基于实现可扩展的服务,同时支持包方式安装部署项目。基于实用,抽象事件处理类,实现与底层的回调的解耦,支持同步异步调用,内置等常用组件等。 swoolefy swoolefy是一个基于swoole扩展实现的轻量级高性能的常驻内存型的API和Web应用服务框架,高度封装了http,websocket,ud...
摘要:二中常用命令显示数据库列表显示当前数据库中的集合类似关系数据库中的表显示用户切换当前数据库,如果数据库不存在则创建数据库。注意操作同时可以创建数据库,如果一个不存在的数据库名,则执行后,会创建对应数据库。如果指定字段,则会更新该的数据。 ..............................................................................
摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...
摘要:作为面试官,我是如何甄别应聘者的包装程度语言和等其他语言的对比分析和主从复制的原理详解和持久化的原理是什么面试中经常被问到的持久化与恢复实现故障恢复自动化详解哨兵技术查漏补缺最易错过的技术要点大扫盲意外宕机不难解决,但你真的懂数据恢复吗每秒 作为面试官,我是如何甄别应聘者的包装程度Go语言和Java、python等其他语言的对比分析 Redis和MySQL Redis:主从复制的原理详...
阅读 1249·2023-01-11 13:20
阅读 1557·2023-01-11 13:20
阅读 1011·2023-01-11 13:20
阅读 1680·2023-01-11 13:20
阅读 3971·2023-01-11 13:20
阅读 2519·2023-01-11 13:20
阅读 1310·2023-01-11 13:20
阅读 3485·2023-01-11 13:20