• mongodb系列~故障排查问题


    一 慢日志
    1 分析大于N秒的慢日志
       awk '$NF~/ms$/{print $1,$NF}' shard2.log|sed 's/ms//g'|awk '$2 > N {print $1,$2}'
    2 在线添加索引
    nohup  mongo  --eval " db.chenfeng.ensureIndex({"riqi":1},{background:true})"  &
    3 通过后台日志可以查看到索引进度
    4 kill查询时间超过5s的所有请求:
    db.currentOp().inprog.forEach(function(item){if(item.secs_running > 5 )db.killOp(item.opid)})
    二 整体性能分析
       mongostat  -h  ip:port  -u用户名 -p密码 --authenticationDatabase=admin --discover
       关注指标
       insert/update/delete/query 可以发现是什么操作导致的负载问题
       dirty:存储引擎脏数据比例,wt引擎默认为5% 很高就导致访问过慢 因为要强制刷脏
       used:存储引擎cacheSize配置占用百分比,类似innoodb_buffer_pool使用率 当该统计值达到80%,evict线程将会触发选择涨数据淘汰,如果这个占比提高到95%,用户请求线程将会触发淘汰,客户端请求将会变慢;
       qrw arw:等待队列数,如果该值越大,说明会引起客户端请求排队处理
       vsize res:虚拟内存和物理内存真实占用,如果vsize过高,远远超过res,或者res过高,远远超过cachesize配置,则说明内存碎片,pageheap等问题,这时候可以通过加速         tcmalloc内存释放速率来解决问题。
       mongotop -h ip:port -u用户名 -p密码 --authenticationDatabase=admin --discover
       ns:数据库命名空间,后者结合了数据库名称和集合。
       db:数据库的名称。名为 . 的数据库针对全局锁定,而非特定数据库。
       total:mongod在这个命令空间上花费的总时间。
       read:在这个命令空间上mongod执行读操作花费的时间。
       write:在这个命名空间上mongod进行写操作花费的时间。
        总结 利用mongostat定义什么操作 利用mongotop定义什么文档业务导致的
    三 其他情况
       1 本人遇到过因为numa导致的mongo cpu暴涨情况

  • 相关阅读:
    C#读取EXCEL中数字无法读取的方法
    学习Wml
    sqlserver.exe进程占cpu100%
    windows phone mango 页面跳转事件顺序
    Windows 8 系列(一):win 8 简介
    windows phone 小应用与随机算法的感悟
    文件下载
    html 表格固定宽度
    excel 导入科学计数法
    word 排版
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/14367036.html
Copyright © 2020-2023  润新知