elasticsearch,bulk,Indexing,elasticsearch,Bulk" /> elasticsearch,bulk,Indexing,elasticsearch,Bulk" />

Indexing 索引数据时在ElasticSearch数据节点中读取大量数据

Indexing 索引数据时在ElasticSearch数据节点中读取大量数据,indexing,elasticsearch,bulk,Indexing,elasticsearch,Bulk,目前我正在将大量数据索引到ElasticSearch节点。刚开始的时候,速度很快,大约过了一天,速度变得非常慢。我转到其中一个数据节点,键入iotop: Total DISK READ: 30.62 M/s | Total DISK WRITE: 1258.86 K/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND

目前我正在将大量数据索引到ElasticSearch节点。刚开始的时候,速度很快,大约过了一天,速度变得非常慢。我转到其中一个数据节点,键入iotop:

Total DISK READ: 30.62 M/s | Total DISK WRITE: 1258.86 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                                       
 3951 be/4 elastics 1580.54 K/s    0.00 B/s  0.00 % 99.99 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3943 be/4 elastics    2.93 M/s    2.39 K/s  0.00 % 99.62 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3950 be/4 elastics 1434.83 K/s    0.00 B/s  0.00 % 99.42 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3941 be/4 elastics    2.48 M/s   46.98 K/s  0.00 % 99.11 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3939 be/4 elastics    3.86 M/s    7.96 K/s  0.00 % 99.01 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3944 be/4 elastics    3.25 M/s    9.55 K/s  0.00 % 98.91 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3942 be/4 elastics    3.41 M/s   82.81 K/s  0.00 % 98.13 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3945 be/4 elastics    3.49 M/s   81.22 K/s  0.00 % 97.77 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3940 be/4 elastics    3.06 M/s   15.92 K/s  0.00 % 97.58 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3938 be/4 elastics    3.13 M/s  121.83 K/s  0.00 % 96.40 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3953 be/4 elastics 1567.80 K/s   44.59 K/s  0.00 % 83.50 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
 3952 be/4 elastics  542.24 K/s  667.25 K/s  0.00 % 71.46 % java -Xms16g -Xmx16g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseC~t.path.conf=/etc/elasticsearch org.elasticsearch.bootstrap.Elasticsearch
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
因此,我想知道为什么磁盘读取量如此之高,而写入量却如此之低(我并行运行200个进程,每2或3秒该进程将执行一次大小为800的大容量索引操作)

PS:每个盒子有32G内存,大小为m3.2x

有什么想法吗


谢谢

导致大量磁盘读取的一个可能原因是合并磁盘的行为 Elasticsearch不支持段的搜索。在此合并过程中,将合并旧版本的内容 段被读取并组合成单个更大的段

您可以在Elasticsearch指南中阅读有关合并的更多信息:

对于合并的性能考虑,我建议采用 请看这篇博文:

能否提供更多ES指标?从海量数据的角度来看,您是否会缺少RAM?另外,看看这个:我同意合并导致了这一点。