logstash7.10-性能调优(官网)

本节包含有关调整Logstash性能的信息:

 

性能故障排除

您可以使用这些故障排除提示来快速诊断和解决Logstash性能问题。不需要高级的管道内部知识就可以理解本指南。但是,如果您想超越这些技巧,建议阅读管道文档

您可能会很想修改pipeline.workers (-w)之类的配置,这是提高性能的第一次尝试。根据我们的经验,修改此配置会使性能问题变得更加困难,因为您在增加变数。最好就是使用控制变量法,一次修改一个配置然后确定结果。建议看完本文,才不会导致因为乱改配置导致异常出现。

  1. 检查输入源和输出目标的性能:

    • Logstash仅与其连接的服务一样快。Logstash仅能以其输入和输出目的地的速度消耗和产生数据!
  2. 查看系统统计信息:

    • CPU

      • 请注意CPU是否被大量使用。在Linux / Unix上,您可以运行top -H以查看按线程划分的进程统计信息以及总CPU统计信息。
      • 如果CPU使用率很高,请跳至有关检查JVM堆的部分,然后阅读有关调整Logstash worker设置的部分。
    • 内存

      • 请注意Logstash在Java VM上运行的事实。这意味着Logstash将始终使用分配给它的最大内存量。
      • 寻找其他使用大量内存并可能导致Logstash交换到磁盘的应用程序。如果应用程序使用的总内存超过物理内存,则会发生这种情况。
    • I / O利用率

      • 监视磁盘I / O检查磁盘是否饱和。

        • 如果您使用的Logstash插件(例如文件输出)可能会使存储饱和,则可能导致磁盘饱和。
        • 如果遇到很多错误,这些错误迫使Logstash生成较大的错误日志,则磁盘饱和也可能发生。
        • 在Linux上,可以使用iostat,dstat或类似的工具监视磁盘I / O。
      • 监视网络I / O的网络饱和度。

        • 如果您使用执行大量网络操作的输入/输出,则可能发生网络饱和。
        • 在Linux上,您可以使用dstat或iftop之类的工具来监视网络。
  3. 检查JVM堆:

    • 对于典型的方案,建议的堆大小应不小于4GB且不大于8GB。
    • 如果堆大小太低,CPU利用率可能会不必要地增加,从而导致JVM不断进行垃圾回收。您可以通过加倍堆大小来检查此问题,以查看性能是否有所提高。
    • 不要增加堆大小超过物理内存量。必须保留一些内存以运行OS和其他进程。作为大多数安装的一般准则,不要超过物理内存的50-75%。您拥有的内存越多,可以使用的百分比就越高。
    • 将最小(Xms)和最大(Xmx)堆分配大小设置为相同的值,以防止在运行时调整堆大小,这是一个非常昂贵的过程。
    • 您可以使用jmap随Java一起分发命令行实用程序或使用VisualVM对JVM堆进行更准确的测量 有关更多信息,请参见分析堆
  4. 调整Logstash管道线程配置:

    • 首先使用该-w命令扩大管道线程的数量这将增加可用于filtersoutput的线程数。如果需要,因为线程可以在I / O上变为空闲状态,可以安全地将其扩展到多个CPU内核。
    • 您也可以调整output batch size对于许多output,例如Elasticsearch output,此设置将对应于I / O操作的大小。对于Elasticsearch output,此设置对应于output batch size

 

 

posted @ 2020-12-29 16:48  奈可见  阅读(3227)  评论(1)    收藏  举报