elasticsearch data.path小坑
2017-11-24 12:30
99 查看
也不能说坑,简单说一下问题吧。
目前组里在用elasticsearch给实时日志建索引,elasticsearch保存一天的实时日志数据,规模大概是46,246,714,141个documents,容量在15T左右。es集群使用了40个node,每个node的path为三个,比如/disk4/data -> sde, /disk5/data -> sdf, disk6/data -> sdg。在这个node上面分布了三个shard,但是我们发现磁盘的IO总是发生在disk6上面,其他两块盘基本没有。这是背景。
有两个问题需要关注,一是shard到data path的映射,还有就是shard data到data path的映射。先说后者,es在2.2以前会将shard的数据在disk上面做均衡,但是在2.2以后,一个shard的数据只会放在同一个data path上,比如上面的disk5。在这种情况下,如果只有一个shard,必然会导致一个disk的IO很高,但是这里有三个shard,shard分配到disk做均衡的时候,不会将shard分配给同一块disk。然而我们在监测集群状态的时候,发现disk6的IO总是很高,而disk5基本没有IO。
这个问题一度使我很费解,因为这种磁盘IO分布不均匀的情况只在这一个节点上面出现,所以应该不是es的问题,那么只能是这个节点本身的问题。最后让我吐血的发现:
df -lh
disk6这块盘共5.6T,而其他的disk只有3.5T左右。shard在分配的时候会挑富余空间大的disk,而因为每个shard的数据其实并不大,大概几百G的样子,不会影响disk6的剩余大小,因此shard的数据都会往sdg这个盘上引,造成sdg的IPOS一直都很高。
教训:es node的data path尽量保证盘的大小差别不要太大,防止一块盘的IO过高。
目前组里在用elasticsearch给实时日志建索引,elasticsearch保存一天的实时日志数据,规模大概是46,246,714,141个documents,容量在15T左右。es集群使用了40个node,每个node的path为三个,比如/disk4/data -> sde, /disk5/data -> sdf, disk6/data -> sdg。在这个node上面分布了三个shard,但是我们发现磁盘的IO总是发生在disk6上面,其他两块盘基本没有。这是背景。
有两个问题需要关注,一是shard到data path的映射,还有就是shard data到data path的映射。先说后者,es在2.2以前会将shard的数据在disk上面做均衡,但是在2.2以后,一个shard的数据只会放在同一个data path上,比如上面的disk5。在这种情况下,如果只有一个shard,必然会导致一个disk的IO很高,但是这里有三个shard,shard分配到disk做均衡的时候,不会将shard分配给同一块disk。然而我们在监测集群状态的时候,发现disk6的IO总是很高,而disk5基本没有IO。
这个问题一度使我很费解,因为这种磁盘IO分布不均匀的情况只在这一个节点上面出现,所以应该不是es的问题,那么只能是这个节点本身的问题。最后让我吐血的发现:
df -lh
disk6这块盘共5.6T,而其他的disk只有3.5T左右。shard在分配的时候会挑富余空间大的disk,而因为每个shard的数据其实并不大,大概几百G的样子,不会影响disk6的剩余大小,因此shard的数据都会往sdg这个盘上引,造成sdg的IPOS一直都很高。
教训:es node的data path尽量保证盘的大小差别不要太大,防止一块盘的IO过高。
相关文章推荐
- ElasticSearch fielddata is disabled on text fields by default. set fielddata=true on interests
- Spring Data Elasticsearch加Elasticsearch服务实现全文搜索
- elasticsearch之modeling your data(not flat)--nested objects
- Spring Data ElasticSearch入门案例
- delete old data in elasticsearch
- kibi - join and filter data from multiple Elasticsearch indexes
- spring data elasticsearch
- Visualizing data with Elasticsearch, Logstash and Kibana
- ElasticSearch索引的相关操作---javaEE--SpringDataElasticSearch
- springdata elasticsearch aggregation 操作
- Spring Data ElasticSearch
- Spring Data Elasticsearch
- Spring Data Elasticsearch
- Deriving data from ElasticSearch Engine
- SpringBoot项目通过 spring data elasticsearch使用elasticsearch
- SpringDataElasticSearch使用
- Spring Data Elasticsearch 与 Elasticsearch 的关系
- 使用Spring Data Elasticsearch操作es(1)--环境搭建
- elasticsearch field data 内存控制
- elasticsearch curl post data