Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1604001
  • 博文数量: 184
  • 博客积分: 3044
  • 博客等级: 中校
  • 技术积分: 2467
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-25 15:04
文章分类

全部博文(184)

文章存档

2022年(4)

2021年(3)

2020年(1)

2019年(5)

2018年(13)

2017年(6)

2016年(10)

2015年(11)

2014年(11)

2013年(13)

2012年(23)

2011年(25)

2010年(2)

2008年(1)

2007年(5)

2006年(51)

分类: NOSQL

2018-07-30 16:37:08

Mongodb版本:3.4.2
OS版本:centos6.8
使用的数据引擎:wiredtigger
Mongodb部署方式:Repl(一主两从)
硬件:64核,512G内存
数据库大小:150G,索引大小:60G


现像:
Mongodb主表现正常,没有任务异常的日志,
Mongodb另一从也表现正常,日志里没有异常记录,但是另一从在日志里出现大量的:serverStatus was very slow,是的,是大量。


连上对应的Mongodb服务器,首先排除了内存,CPU及IO的问题
因为内存有大量剩余,CPU只用到2%,IO读写没有任务压力!这就有点晕圈了,怎么回事呀!
日志如下:


2018-07-30T13:54:14.883+0800 I COMMAND  [conn1] serverStatus was very slow: { after basic: 0, after advisoryHostFQDNs: 10016, after asserts: 10016, after backgroundFlushing: 10016, after connections: 10016, after dur: 10016, after extra_info: 10016, after globalLock: 10016, after network: 10016, after opLatencies: 10016, after opcounters: 10016, after opcountersRepl: 10016, after repl: 10016, after security: 10016, after sharding: 10016, after storageEngine: 10016, after tcmalloc: 10016, after wiredTiger: 10016, at end: 10016 }
2018-07-30T13:54:14.883+0800 I COMMAND  [conn1] command admin.$cmd command: serverStatus { serverStatus: 1, advisoryHostFQDNs: 1, locks: 0, recordStats: 0, oplog: 0 } numYields:0 reslen:22917 locks:{} protocol:op_query 10016ms
......


还有一点,就是好像对业务的查询影响不是很大(影响是一定有的,只不过这个从分流的业务不是很多,所以业务没有很明显影响,但是不解决的话,说不定那天GG了),问题必须解决!


对比了主从的启动命令,发现三台服务器启动Mongodb的命令是一模一样的。
那会不会是网络原因呢,查看监控,发现三台服务器的数据与曲线也基本上差不多!
好吧,再回来看仔细看日志吧
{ after basic: 0, after advisoryHostFQDNs: 10016, after asserts: 10016, after backgroundFlushing: 10016, after connections: 10016, after dur: 10016, after extra_info: 10016, after globalLock: 10016, after network: 10016, after opLatencies: 10016, after opcounters: 10016, after opcountersRepl: 10016, after repl: 10016, after security: 10016, after sharding: 10016, after storageEngine: 10016, after tcmalloc: 10016, after wiredTiger: 10016, at end: 10016 }


注意到一点:after advisoryHostFQDNs: 10016 是不是说在这一点就花了10016MS呀,好像有点戏呀
看看什么是advisoryHostFQDNs,官网解释:new in version 3.2 "An array of the system’s fully qualified domain names (FQDNs)"
FQDNs:fully qualified domain names
这跟域名有关,好像问题原因就在这里
使用hostname -f 查看本机的全域名,结果:
hostname: Host name lookup failure
那我在/etc/hosts里设置一下不就可以了?
动手修改/etc/hosts 增加本机的IP的域名,然后强制加载一下:hostname -F /etc/hosts,再使用hostname -f 查看本机的全域名,正常显示!


再看Mongodb的日志,再也没有serverStatus was very slow之类的日志,问题解决

另附带一问题:
在这台有问题机器上使用lsof时也出奇的慢,这个跟DNS有关,可以使用lsof -n解决这个问题!
阅读(4413) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~