zoukankan      html  css  js  c++  java
  • MongoDB 访问超时

    MongoDB版本:3.2.6

    cacheSizeGB: 32

    引擎:WiredTiger

    架构:副本集

    业务请求MongoDB出现超时现象。

    查看MongoDB日志,存在大量的慢更新语句,通过netdata查看服务器监控,排除io问题,发现单核CPU持续出现100%

    通过pidstat查看MongoDB进程的CPU使用情况

    [root@127-0-0-1 ~]# pidstat -t -p ALL |grep mongod

    怀疑mongodb自身刷脏页,通过perf查看mongod进程

    [root@127-0-0-1 ~]# perf top -p pid

    再选择 Annotate,找出热点(可以精确到 CPU 指令):(忘记截图,随便截一个)

    为了保证线上业务的可用和稳定性,先切换primary为业务提供正常的服务。

    解决方法:

    1、将版本升级到3.2.10,官方修复了该问题

    2、eviction 参数调优:降低eviction_target 或 eviction_dirty_target,让evict 尽早将数据从 wiredtiger 的 cache 刷到操作系统的 page cache,以便提早刷盘。

    db.runCommand({setParameter: 1, wiredTigerEngineRuntimeConfig: "eviction_dirty_target=5,eviction_target=80"})

        

  • 相关阅读:
    学习jQuery必须知道的几种常用方法
    Jquery技巧总结
    代码测试
    NOIP2003 神经网络
    NOIP2003 传染病控制
    NOIP2003 加分二叉树
    NOIP2004 虫食算
    NOIP2004 合唱队列
    NOIP2004 合并石子
    NOIP2004 津津的储蓄计划
  • 原文地址:https://www.cnblogs.com/hankyoon/p/13451677.html
Copyright © 2011-2022 走看看