性能故障排除
编辑性能故障排除
编辑您可以使用以下故障排除技巧来快速诊断和解决 Logstash 性能问题。无需深入了解管道内部机制即可理解本指南。但是,如果您想超越这些技巧,建议阅读管道文档。
您可能会倾向于跳过并更改诸如 pipeline.workers
(-w
) 之类的设置作为提高性能的首次尝试。根据我们的经验,更改此设置会使故障排除性能问题变得更加困难,因为您增加了正在使用的变量的数量。相反,请一次更改一个设置并衡量结果。从本列表的末尾开始是一个导致混乱情况的确定方法。
性能检查清单
编辑-
检查输入源和输出目标的性能
- Logstash 的速度仅与其连接的服务一样快。Logstash 只能以其输入和输出目标允许的速度来使用和生成数据!
-
检查系统统计信息
-
CPU
- 注意 CPU 是否被大量使用。在 Linux/Unix 上,您可以运行
top -H
以查看按线程细分的进程统计信息以及总 CPU 统计信息。 - 如果 CPU 使用率很高,请跳至有关检查 JVM 堆的部分,然后阅读有关调整 Logstash 工作程序设置的部分。
- 注意 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。
- 如果堆大小太小,导致 JVM 不断进行垃圾回收,CPU 利用率可能会不必要地增加。您可以通过将堆大小加倍来检查此问题,以查看性能是否有所提高。
- 不要将堆大小增加到超过物理内存的量。必须保留一些内存来运行操作系统和其他进程。作为大多数安装的一般指南,不要超过物理内存的 50-75%。内存越多,可以使用比例越高。
- 将最小 (Xms) 和最大 (Xmx) 堆分配大小设置为相同的值,以防止堆在运行时调整大小,这是一个非常耗时的过程。
- 您可以使用与 Java 一起分发的
jmap
命令行实用程序或使用 VisualVM 对 JVM 堆进行更准确的测量。有关更多信息,请参阅分析堆。
-
调整 Logstash 管道设置
- 继续访问Logstash 管道性能调优和分析,以了解如何调整各个管道。