elasticsearch 使用logstash到ElasticSearch的数据集导入速度较慢
我需要导入文本文件(没有结构,只是逐行数据),但在我看来它可以做得更好。我已经对logstash配置做了一些更改,并使用-b和-w选项获得了大约200%的收益(我发现了最佳点)。但对于我的需求来说,它还是太慢了 硬件:i5 7600k@4.5GHz,32GB DDR4 ram,SSD intel 512GB文件:26GB,~800 000000线-b 1000和-w 16选项的当前速度:2500000 每分钟约41000 每秒 我要找的速度大约是每秒50万次 日志存储配置文件:elasticsearch 使用logstash到ElasticSearch的数据集导入速度较慢,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana,我需要导入文本文件(没有结构,只是逐行数据),但在我看来它可以做得更好。我已经对logstash配置做了一些更改,并使用-b和-w选项获得了大约200%的收益(我发现了最佳点)。但对于我的需求来说,它还是太慢了 硬件:i5 7600k@4.5GHz,32GB DDR4 ram,SSD intel 512GB文件:26GB,~800 000000线-b 1000和-w 16选项的当前速度:2500000 每分钟约41000 每秒 我要找的速度大约是每秒50万次 日志存储配置文件: input {
input {
file {
path => "/home/w-nsa/dataset.txt"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
output {
elasticsearch {
hosts => "http://8.8.3.2:9200"
index => "test"
}
}
您的瓶颈可能是elasticsearch端的索引速度 您的服务器是如何配置的?Logstash和Elasticsearch在同一台机器上?每个Java堆的Java堆是什么 这篇文章提供了一些技巧来提高索引速度
您应该尝试索引数据,并使用
iostat
和iotop
等工具监控elasticsearch机器上的IO,以查看机器在重载下的行为。在多个日志库上运行它instances@Mysterion我认为这不是一个好主意:这意味着重复JVM开销,尤其是-w选项允许并行化进程。@baudsp如何使其更快?:)@神秘号我不认为我可以,除非增加更多的机器来分担他们之间的工作。但是leandrojmp对elasticsearch性能的评论是个好主意。elastic的Heap是12GB,on LogStash是默认值,我现在记不起来了,是的,它们在同一台机器上,但在不同的SSD磁盘上。磁盘的利用率似乎不是100%,而是40%,当在文件上使用grep时,我得到了512MB/s。日志存储默认堆大小是1GB,因为您将批大小从默认的125增加到了1000,也许您可以尝试增加日志存储堆大小,用2GB或4GB测试它,这样您仍然有50%的内存用于其他进程。在使用iostat
编制索引时,您是否检查了elasticsearch磁盘的IO性能?