我如何上传和解析大文件从logstash到Elasticsearch



我有一个3节点集群,其中1个主节点和2个数据节点,每个节点设置为1TB我已经将-Xms24g -Xmx24g增加到我内存的一半(总共48GB)在将文件从100mb增加到1GB后,我从GUI成功地将140mb的文件从Kibana上传到elk当我试图仅用logstash上传相同的文件时,该过程被卡住并打破了弹性我的管道相当简单

input {
file {
path => "/tmp/*_log"
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}

小文件效果很好。我不能推送大文件。日志包含100万行我将/etc/security/limits.conf中的所有字段设置为unlimited你知道我错过了什么吗?

你需要在/etc/logstash/jvm.options中增加内存大小

典型摄取场景的推荐堆大小应不小于4GB,不大于8GB。

如果堆大小过低,CPU利用率可能会不必要地增加,从而导致JVM不断地进行垃圾收集。您可以通过将堆大小加倍来检查此问题,以查看性能是否得到改善。不要增加超过物理内存量的堆大小。必须留出一些内存来运行操作系统和其他进程。作为大多数安装的一般指导原则,不要超过物理内存的50-75%。您拥有的内存越多,您可以使用的百分比就越高。

设置最小(Xms)和最大(Xmx)堆分配大小为相同的值,以防止堆在运行时调整大小,这是一个非常昂贵的过程。

可以使用随Java分发的jmap命令行实用程序或使用VisualVM

对JVM堆进行更精确的测量

最新更新