热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

logstash5.x改变

5.x版本logstash中elasticsearch插件的workers,无法配置大于1,会提示Thispluginusesthesharedandd

5.x版本 logstash中 elasticsearch插件的workers,无法配置大于1,会提示 This plugin uses the shared and doesn't need this option

这个的意思是进到logstash本身的配置文件pipeline.output.workers。

不要一开始就修改workers个数。这也许是一个误区。虽然确实可以起到一些作用。

检查cpu

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

检查内存

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

检查IO

监视磁盘I / O以检查磁盘饱和。

如果使用Logstash插件(例如文件输出),可能会使存储饱和,则可能会出现磁盘饱和。
磁盘饱和也可能发生,如果你遇到很多错误,强制Logstash生成大的错误日志。
在Linux上,可以使用iostat,dstat或类似于监视磁盘I / O的东西。

监视网络I / O以实现网络饱和。

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

通常情况下,如果堆大小太低,CPU利用率经常过限制(百分之百),导致JVM不断进行垃圾回收。
检查此问题的快速方法是将堆大小加倍,并查看性能是否提高。 不要增加超过物理内存量的堆大小。 为操作系统和其他进程保留至少1GB的空闲空间。
可以使用随Java分发的jmap命令行实用程序或使用VisualVM对JVM堆进行更准确的度量。

调整Logstash工作线程设置:

首先使用-w标志扩大管道工作线程的数量。 这将增加可用于过滤器和输出的线程数。 如果需要,可以安全地将其扩展到多个CPU内核,因为线程可以在I / O上变为空闲。
默认情况下,每个输出只能在单个管道工作线程中处于活动状态。 可以通过更改每个输出的配置块中的workers设置来增加此值。 不要使此值大于管道工人的数量。
还可以调整输出批处理大小。 对于许多输出,例如Elasticsearch输出,此设置将对应于I / O操作的大小。 在Elasticsearch输出的情况下,此设置对应于批处理大小。

pipeline.batch.size设置定义单个工作线程在尝试执行过滤器和输出之前收集的最大事件数。 较大的批量大小通常更高效,但增加了内存开销。 某些硬件配置要求您通过设置LS_HEAP_SIZE变量来增加JVM堆大小,以避免使用此选项导致性能下降。 此参数的值超过最佳范围会导致由于频繁的垃圾回收或与内存不足异常相关的JVM崩溃而导致性能下降。 输出插件可以将每个批处理作为逻辑单元处理。 例如,Elasticsearch输出针对接收的每个批生产批量请求。 调整pipeline.batch.size设置可调整发送到Elasticsearch的批量请求的大小。

pipeline.batch.delay设置很少需要调整。 此设置调整Logstash管道的延迟。 流水线批处理延迟是Logstash在当前管道工作线程中接收到事件后等待新消息的最大时间(毫秒)。 在此时间过后,Logstash开始执行过滤器和输出.Logstash在接收事件和在过滤器中处理该事件之间等待的最大时间是pipeline.batch.delay和pipeline.batch.size设置的乘积。

如果计划修改默认管道设置,请考虑以下建议:

事件的总数由pipeline.workers和pipeline.batch.size设置的乘积确定。称为流动计数。 在调整pipeline.workers和pipeline.batch.size设置时,请记住流动计数的值。 以不规则间隔间歇接收大型事件的管道需要足够的内存来处理这些尖峰。 相应地配置LS_HEAP_SIZE变量。
测量每个更改以确保其性能提高,而不是降低。
确保留下足够的内存可用来应付突然增加的事件大小。 例如,生成表示为大文本块的异常的应用程序。

工作程序的数量可以设置为高于CPU核心的数量,因为输出经常在I / O等待条件中花费空闲时间。
Java中的线程具有名称,可以使用jstack,top和VisualVM图形工具来确定给定线程使用的资源。
在Linux平台上,Logstash标记了所有可以描述的线程。 例如,输入显示为[base] workerN,其中N是整数。 在可能的情况下,还会标记其他线程以确定其目的。

 


转载于:https://www.cnblogs.com/guochunyi/p/6148618.html


推荐阅读
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 2018深入java目标计划及学习内容
    本文介绍了作者在2018年的深入java目标计划,包括学习计划和工作中要用到的内容。作者计划学习的内容包括kafka、zookeeper、hbase、hdoop、spark、elasticsearch、solr、spring cloud、mysql、mybatis等。其中,作者对jvm的学习有一定了解,并计划通读《jvm》一书。此外,作者还提到了《HotSpot实战》和《高性能MySQL》等书籍。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • 生产环境下JVM调优参数的设置实例
     正文前先来一波福利推荐: 福利一:百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家。福利二 ... [详细]
  • 一面自我介绍对象相等的判断,equals方法实现。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。希望去哪 ... [详细]
  • jvm内存区域与溢出为什么学习jvm木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时候,那么就需要你对jvm的了解掌握。当一个系统出现内存溢出,内存泄露的时候 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • Android系统启动过程分析一、Android平台架构首先贴一张Android系统架构图方便理解整个Android架构,这可以让我们从整体上对整个启动流程有个大概认知。可以看出整 ... [详细]
author-avatar
自由财富大赢家
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有