背景是这样的:
服务器配置 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后依然很慢。 有人遇到过类似问题吗
服务器配置 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后依然很慢。 有人遇到过类似问题吗
2 个回复
simonlei
赞同来自: you2790
如果内存都被redis占了,就只能频繁的使用硬盘了,你可以观察一下jvm的gc情况和磁盘IO的使用情况。
感觉就是redis把系统内存用完了,导致es没内存用,建议分开部署。
另外es的分片太多了,你单机部署的话,每个index没必要搞5个shard,1个就够了。
Eric_L
赞同来自: