logstash7.10-性能调优(官网)
本节包含有关调整Logstash性能的信息:
您可以使用这些故障排除提示来快速诊断和解决Logstash性能问题。不需要高级的管道内部知识就可以理解本指南。但是,如果您想超越这些技巧,建议阅读管道文档。
您可能会很想修改pipeline.workers (-w)之类的配置,这是提高性能的第一次尝试。根据我们的经验,修改此配置会使性能问题变得更加困难,因为您在增加变数。最好就是使用控制变量法,一次修改一个配置然后确定结果。建议看完本文,才不会导致因为乱改配置导致异常出现。
-
检查输入源和输出目标的性能:
- Logstash仅与其连接的服务一样快。Logstash仅能以其输入和输出目的地的速度消耗和产生数据!
-
查看系统统计信息:
-
CPU
- 请注意CPU是否被大量使用。在Linux / Unix上,您可以运行
top -H以查看按线程划分的进程统计信息以及总CPU统计信息。 - 如果CPU使用率很高,请跳至有关检查JVM堆的部分,然后阅读有关调整Logstash worker设置的部分。
- 请注意CPU是否被大量使用。在Linux / Unix上,您可以运行
-
内存
- 请注意Logstash在Java VM上运行的事实。这意味着Logstash将始终使用分配给它的最大内存量。
- 寻找其他使用大量内存并可能导致Logstash交换到磁盘的应用程序。如果应用程序使用的总内存超过物理内存,则会发生这种情况。
-
I / O利用率
-
监视磁盘I / O检查磁盘是否饱和。
- 如果您使用的Logstash插件(例如文件输出)可能会使存储饱和,则可能导致磁盘饱和。
- 如果遇到很多错误,这些错误迫使Logstash生成较大的错误日志,则磁盘饱和也可能发生。
- 在Linux上,可以使用iostat,dstat或类似的工具监视磁盘I / O。
-
监视网络I / O的网络饱和度。
- 如果您使用执行大量网络操作的输入/输出,则可能发生网络饱和。
- 在Linux上,您可以使用dstat或iftop之类的工具来监视网络。
-
-
-
检查JVM堆:
- 对于典型的方案,建议的堆大小应不小于4GB且不大于8GB。
- 如果堆大小太低,CPU利用率可能会不必要地增加,从而导致JVM不断进行垃圾回收。您可以通过加倍堆大小来检查此问题,以查看性能是否有所提高。
- 不要增加堆大小超过物理内存量。必须保留一些内存以运行OS和其他进程。作为大多数安装的一般准则,不要超过物理内存的50-75%。您拥有的内存越多,可以使用的百分比就越高。
- 将最小(Xms)和最大(Xmx)堆分配大小设置为相同的值,以防止在运行时调整堆大小,这是一个非常昂贵的过程。
- 您可以使用
jmap随Java一起分发的命令行实用程序或使用VisualVM对JVM堆进行更准确的测量 。有关更多信息,请参见分析堆。
-
调整Logstash管道线程配置:
- 首先使用该
-w命令扩大管道线程的数量。这将增加可用于filters和output的线程数。如果需要,因为线程可以在I / O上变为空闲状态,可以安全地将其扩展到多个CPU内核。 - 您也可以调整output batch size。对于许多output,例如Elasticsearch output,此设置将对应于I / O操作的大小。对于Elasticsearch output,此设置对应于output batch size。
- 首先使用该



浙公网安备 33010602011771号