
mongodb 没过一会就会出现长达 20 秒左右的锁等待,看日志也不和特定的查询有关, cpu 使用率 10%左右,内存 50%,每秒 30-50 左右读写,这是为什么呢?太奇怪了
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 看到了
1 lianghui 2016-01-22 11:50:13 +08:00 mongo 的范围查询会锁住全库,是不是有大量并发范围查询? 比如 start_time > 7 && start_time < 10000 之类? 如果没法避免这类查询 可以把一个 collection 做成一个库 |
2 mengzhuo 2016-01-22 14:40:50 +08:00 先看查询语句是不是写得不好 再看索引状态,一般是索引没建 然后是 mongostat 看看是不是 IO 过高导致 最后, mongo3 从库锁改成了 collection 锁 |
3 sujin190 OP |
4 MartinWu 看 currentop |
5 yuchting 2016-01-22 16:35:49 +08:00 卡的时候看一下 iotop 哈,如果有条件, ssh 上去试一下 dd 写一个 1G 的文件,看看是不是硬盘卡了。如果是 VPS ,母鸡的其他小鸡在读取硬盘。 话说我就遇到过,有时候其他小鸡不知道在干什么,我的就盘子就不动, mongodb 就死活不返回。。。 |
6 vietor 2016-01-22 16:42:19 +08:00 via Android 分片迁移? |
7 sujin190 OP |
8 yuchting 2016-01-22 21:25:04 +08:00 @sujin190 我就是用的 mongodb ,数据量非常大,完全木有问题查询、写字段完全木有问题。用得很嗨,多次出现问题,丫的都是因为母鸡出事故。 我提供的方法细节,卡的时候,两个 ssh ,一个监控 iotop ,另外一个用 dd , iotop 这个时候会显示出 dd 写盘子的 io ,如果这个 dd 也只有几十 kb ,那么肯定母鸡问题,如果这个时候 dd 达到百 M ( ssd 很容易达到哈),那表示 mongodb 傻逼了,从 mongodb 的日志上面入手,这个时候 mongo shell setProfilingLevel 如果是默认的话,绝对有日志输出的。一查问题就知道在哪里。 |
9 sujin190 OP @yuchting 母机问题,这个倒还没想过,不过所有都试了还是无法解释的话,还真有可能。。 如果 mongodb 傻逼了的话,一般会有什么问题呢? |
10 icegreen 2016-01-22 23:11:02 +08:00 |
11 icegreen 2016-01-22 23:12:00 +08:00 上面贴了我之前优化 mongodb 的一些笔记;主要是针对查询队列堆积,查询缓慢,优化索引方面的; |
12 tpwow 2016-01-23 00:50:45 +08:00 via Android 先 mark |