mongodb 长时间卡顿问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sujin190
V2EX    MongoDB

mongodb 长时间卡顿问题

  •  
  •   sujin190 2016-01-22 11:20:43 +08:00 5393 次点击
    这是一个创建于 3568 天前的主题,其中的信息可能已经有所发展或是发生改变。

    mongodb 没过一会就会出现长达 20 秒左右的锁等待,看日志也不和特定的查询有关, cpu 使用率 10%左右,内存 50%,每秒 30-50 左右读写,这是为什么呢?太奇怪了

    第 1 条附言    2016-01-22 17:15:31 +08:00
    insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn set repl time *0 6 *0 *0 0 3|0 0 45.4g 97.8g 3.24g 0 delivery:0.0% 0 0|0 0|0 1k 8k 266 gege PRI 17:12:39 1 23 *0 *0 0 1|0 0 45.4g 97.8g 3.24g 0 delivery:0.0% 0 1|0 0|1 639b 8k 266 gege PRI 17:12:47 11 145 13 *0 0 11|0 0 45.4g 97.8g 3.23g 1 sms:94.6% 0 0|0 3|0 26k 70k 266 gege PRI 17:12:48 29 78 9 *0 0 8|0 0 45.4g 97.8g 3.26g 0 weixin:0.3% 0 0|0 1|0 27k 41k 266 gege PRI 17:12:49 6 20 4 *0 0 1|0 0 45.4g 97.8g 3.26g 0 weixin:3.7% 0 0|0 2|0 7k 13k 266 gege PRI 17:12:50 9 30 6 *0 0 1|0 0 45.4g 97.8g 3.26g 0 weixin:0.2% 0 0|0 0|0 9k 32k 266 gege PRI 17:12:51 6 22 1 *0 0 1|0 0 45.4g 97.8g 3.26g 0 delivery:0.2% 0 0|0 0|0 5k 9k 266 gege PRI 17:12:52 6 13 1 *0 0 1|0 0 45.4g 97.8g 3.32g 0 delivery:0.0% 0 0|0 0|0 5k 9k 266 gege PRI 17:12:53 2 12 1 *0 0 3|0 0 45.4g 97.8g 3.32g 0 delivery:0.0% 0 0|0 0|0 3k 9k 266 gege PRI 17:12:54 1 18 3 *0 0 1|0 0 45.4g 97.8g 3.26g 0 delivery:0.3% 0 0|0 0|0 3k 45k 266 gege PRI 17:12:55 

    mongostats 看到了

    12 条回复    2016-01-23 00:50:45 +08:00
    lianghui
        1
    lianghui  
       2016-01-22 11:50:13 +08:00   2
    mongo 的范围查询会锁住全库,是不是有大量并发范围查询? 比如 start_time > 7 && start_time < 10000 之类? 如果没法避免这类查询 可以把一个 collection 做成一个库
    mengzhuo
        2
    mengzhuo  
       2016-01-22 14:40:50 +08:00
    先看查询语句是不是写得不好
    再看索引状态,一般是索引没建
    然后是 mongostat 看看是不是 IO 过高导致

    最后, mongo3 从库锁改成了 collection 锁
    sujin190
        3
    sujin190  
    OP
       2016-01-22 16:03:14 +08:00
    @lianghui 没有这样的查询啊,数据最多一个 collection 也才不到一百万,也不可能锁那么久啊
    @mengzhuo mongostat 读写, io , fault 都很低,但就是突然卡一下,突然卡一下的,
    MartinWu
        4
    MartinWu  
       
    看 currentop
    yuchting
        5
    yuchting  
       2016-01-22 16:35:49 +08:00
    卡的时候看一下 iotop 哈,如果有条件, ssh 上去试一下 dd 写一个 1G 的文件,看看是不是硬盘卡了。如果是 VPS ,母鸡的其他小鸡在读取硬盘。

    话说我就遇到过,有时候其他小鸡不知道在干什么,我的就盘子就不动, mongodb 就死活不返回。。。
    vietor
        6
    vietor  
       2016-01-22 16:42:19 +08:00 via Android
    分片迁移?
    sujin190
        7
    sujin190  
    OP
       2016-01-22 17:10:05 +08:00
    @MartinWu 看了,处于 waitForLock 状态,每次等的查询不一样
    @yuchting ucloud 主机,应该是有 ssd 的吧,而且每秒写只有几十, iotop 看的时候每秒写 60 几 kB 吧,不算什么吧,日志中看很奇怪,针对主键_id 跟新已存在 key 的值也会出现长达 30 秒的,插入也会出现 20 多秒的, mongodb 不应该这么弱啊
    @vietor 数据量很低的,总量才一个来 G ,不需要分片吧
    yuchting
        8
    yuchting  
       2016-01-22 21:25:04 +08:00   1
    @sujin190 我就是用的 mongodb ,数据量非常大,完全木有问题查询、写字段完全木有问题。用得很嗨,多次出现问题,丫的都是因为母鸡出事故。

    我提供的方法细节,卡的时候,两个 ssh ,一个监控 iotop ,另外一个用 dd , iotop 这个时候会显示出 dd 写盘子的 io ,如果这个 dd 也只有几十 kb ,那么肯定母鸡问题,如果这个时候 dd 达到百 M ( ssd 很容易达到哈),那表示 mongodb 傻逼了,从 mongodb 的日志上面入手,这个时候 mongo shell setProfilingLevel 如果是默认的话,绝对有日志输出的。一查问题就知道在哪里。
    sujin190
        9
    sujin190  
    OP
       2016-01-22 22:10:16 +08:00
    @yuchting 母机问题,这个倒还没想过,不过所有都试了还是无法解释的话,还真有可能。。
    如果 mongodb 傻逼了的话,一般会有什么问题呢?
    icegreen
        10
    icegreen  
       2016-01-22 23:11:02 +08:00
    icegreen
        11
    icegreen  
       2016-01-22 23:12:00 +08:00
    上面贴了我之前优化 mongodb 的一些笔记;主要是针对查询队列堆积,查询缓慢,优化索引方面的;
    tpwow
        12
    tpwow  
       2016-01-23 00:50:45 +08:00 via Android
    先 mark
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5782 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 06:41 PVG 14:41 LAX 23:41 JFK 02:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86