这两天线上的ES集群总是有问题,开始查找原因
发现这段时间各个机器的负载都很高,本来希望通过jstack找到一些信息,但居然提示‘Unable to open socket file: target process not responding or HotSpot VM not loaded’,度娘提示
应该是机器很久没有重启了,没办法,只能放弃这种方式。第一步就没有走通。
继续查发现几台机器 cpu 内存 都很高, 但是硬盘不太对劲,有一台机器硬盘使用下降的厉害,而另外几台硬盘使用都是上升的,初步判断是这台机器出现问题后,开始转移分片导致,
登录到这台机器,查找日志,发现很多报错, 直觉告诉我很可能是这台机器,拖垮了集群,报错的内容大致是,无法与主节点建立连接。继续查为什么这台机器会好好的失联了呢,
继续看监控,发现网络io没有特别的变化, 应该不是大批量的访问造成的,但是线程数却增加的很厉害,突然想到ES还有一个慢查询的日志,翻看一看,果然有几个查询,特别耗时
有的甚至达到了2分钟才返回结果,至此初步判断是这种耗时的查询,压垮了这台机器。让对应的业务修改完后,继续观察。