愚者求师之过,智者从师之长。

elasticsearch 索引速度问题,及单机节点问题

Elasticsearch | 作者 you2790 | 发布于2017年10月30日 | 阅读数:3713

   背景是这样的: 
                             服务器配置 32核 256G内存
                             架构最常见的 shipper(filebeats) ---> redis ---> indexer(logstash) --->elasticsearch 
                             感觉这台服务器配置还可以,elasticsearch是单机的,redis 也放在了这台机器上
    遇到的问题:
            问题1.  elasticsearch 经常会莫名其妙的挂掉, 大概一个月一次,日志量是一天40G 左右。确定磁盘是足够,
            问题2.  当redis没有堆积大量的日志时 elasticsearch 索引速度非常快 ,当redis 堆积了大量的日志(内存占用百分之八十 即 200G内存左右) ,这时elasticsearch 建索引速度会很不稳定,甚至是0.   下面这幅图解释一下,八点前速度低是因为很多日志没有收集,八点把所有收集端都开启后,速度很快,基本收集的几秒内都能消费完,redis不会堆积日志。 但是到了中午速度变慢,redis 开始堆积日志,到了下午3点 基本速度为0。这时候redis 已经堆积了200G内存的日志,重启elasticsearch后依然很慢。 有人遇到过类似问题吗

2017-10-30_18-18-44屏幕截图.png

 
已邀请:

simonlei

赞同来自: you2790

虽然es你只分配了8G的内存,但是es的doc values其实也要占用系统内存的。
如果内存都被redis占了,就只能频繁的使用硬盘了,你可以观察一下jvm的gc情况和磁盘IO的使用情况。
感觉就是redis把系统内存用完了,导致es没内存用,建议分开部署。
 
另外es的分片太多了,你单机部署的话,每个index没必要搞5个shard,1个就够了。
 

Eric_L

赞同来自:

我也觉得应该是redis和es安装在一起导致的,他们两个会抢占资源,服务器这么大的内存,es的内存分配的也太小了。

要回复问题请先登录注册