一  增加索引导致的性能问题
   1 问题描述
      1 并发增加大表index 2 从库异常重启构建索引到一半崩溃
     增加索引具体流程
     1 主节点查询对应表数据,然后build构建索引。
     2   索引数据构建执行完成后,返回客户端OK。(注意:主构建完成后就通知OK给客户端,实际上这时候从节点还没有开始构建索引)
     3   生成createIndex对应oplog数据到oplog表
     4 从节点获取到createIndex对应oplog操作,然后重放createIndex构建索引。
   2 问题解决
      1去掉副本集参数 以单实例+noindexbuidlretry启动 增加索引,增加完再以副本集的成员加入集群()
1 noindexbuildretry不能和副本集一起启动
2 noindexbuildretry在4.2X以后的版本已废弃
2 重新构建从库
二 global-lock突然上升-读写TICKET剩余量减少
      1 值获取
        db.serverStatus().globalLock
      2 获取顺序
         globalLock ==> DBLock ==> CollecitonLock  在globallock层次加的是意向锁,如果是读就是(MODE_IS) 如果是写就是(mode_IX) IS和IX是无需竞争的,所以读写请求可以在没有竞争的情况下,同时传到wiredtiger引擎去处理 ,获取不到ticket,global lock值就会升高
      3 如果globalLock.currentQueue.readers/writers个值长时间都不为0(此时globalLock.activeClients.readers/writers肯定是持续接近或等于128的),说明你的系统并发太高(或者有长时间占用互斥锁的请求比如前台建索引),可以通过优化单个请求的处理时间(比如建索引来减少COLLSCAN或SORT),或升级后端资源(内存、磁盘IO能力、CPU)来优化。
三 MONGO聚合内存不足
    内存限制大小是16M db.collection.aggregate([{$group:{_id:"$_id"}}], {allowDiskUse: true}) 添加allowDiskUse解决
四 mongo-config异常-版本3.2X版本
  1 问题描述
     config servers mongo1 and mong3 differ
     3.2.X版本mongo-config还是独立节点启动,所以某个config服务异常会导致config整体异常导致分配不可用
  2 问题解决
    1 如何进行确认呢
    use config  db.runCommand({dbHash:1}) 对比3个节点的hash值 取2个正确的
    2 数据导出导入
    停止服务异常的config服务 mongodump --config-server -d config -o /home/config
    将正确的数据导入 mongorestore --config-server -d config /home/config
    再启动config服务 service mongo-config start
  3 问题避免
    1 升级mongodb版本避免此问题
    2 尽量安全启动停止整体集群服务
五  mongo无法写入 几种情况 
   1 mongos层挂掉
   2 3.2版本的config服务出现问题
        1 service 不可达  
        2  mongos层配置了新的config镜像导致底层无法识别
  3 mongodb 某个副本集分片完全挂掉导致无法访问
  4 mongodb的连接数被打满
  测试集群是否正常
  time mongo -u  -p   --authenticationDatabase admin  host:port --eval "db.hxf.insert({"uid":1});"  
六 too many open files导致的mongodb服务异常
   解决方式
   1 减少collections集合数量  2 加大mongodb的文件打开数限制
七 mongos所在的服务器高负债
   mongos本身需要做聚合计算,所以会出现高负载的情况
   解决方式
   扩展mongos节点 并将节点提供给研发即可,减少单个mongs的资源消耗

相关文章:

  • 2021-05-31
  • 2022-02-03
  • 2021-08-31
  • 2022-12-23
  • 2022-12-23
  • 2021-10-13
  • 2021-09-30
  • 2021-11-27
猜你喜欢
  • 2021-10-14
  • 2021-10-30
  • 2021-10-15
  • 2021-08-06
  • 2022-12-23
相关资源
相似解决方案