Logstash性能优化(1),15个经典面试问题及回答思路

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

  1. TCP连接数 :logstash后端仅与3个ES节点建立TCP连接,连接数无问题
  2. 网络带宽: 万兆网卡支持,无性能瓶颈。

logstash input (目前 非瓶颈)

  1. 接收filebeat推送日志,接收量由filter,output协同决定。

logstash filter & logstash output ( 瓶颈)

  1. 升级logstash版本 1.7 -> 2.2 
    2.2版本之后的logstash优化了input,filter,output的线程模型。
  2. 增大 filter和output worker 数量 通过启动参数配置 -w 48 (等于cpu核数) 
    logstash正则解析极其消耗计算资源,而我们的业务要求大量的正则解析,因此filter是我们的瓶颈。官方建议线程数设置大于核数,因为存在I/O等待。考虑到我们当前节点同时部署了ES节点,ES对CPU要求性极高,因此设置为等于核数。
  3. 增大 woker 的 batch_size 150 -> 3000 通过启动参数配置 -b 3000 
    batch_size 参数决定 logstash 每次调用ES bulk index API时传输的数据量,考虑到我们节点机256G内存,应该增大内存消耗换取更好的性能。
  4. 增大logstash 堆内存 1G -> 16G 
    logstash是将输入存储在内存之中,worker数量 * batch_size = n * heap (n 代表正比例系数)

worker * batch_size / flush_size = ES bulk index api 调用次数

调优结果:

三节点 logstash 吞吐量 7000 -> 10000 (未达到logstash吞吐瓶颈,目前集群推送日志量冗余) logstash不处理任何解析,采用stdout输出方式,最高吞吐 11w/s

集群吞吐量 24000 -> 32000 (未饱和) 
stop两个logstash节点后,单节点logstash吞吐峰值15000 (集群目前应该有 2w+ 的日质量,单节点采集1w5,所以为单节点峰值)

集群调优前: 
调优前

集群调优后:

这里写图片描述

最后观察,系统负载也一下上去了

这里写图片描述


最后,总结一下调优步骤:

worker * batch_size / flush_size = ES bulk index api 调用次数

  1. 根据CPU核数调整合适的worker数量,观察系统负载。
  2. 根据内存堆大小,调整batch_size,调试JVM,观察GC,线程是否稳定。
  3. 调整flush_size,这个值默认500,我在生产环境使用的1500,这个值需要你逐步增大,观察性能,增大到一定程度时,性能会下降,那么那个峰值就是适合你的环境的。

来自:http://blog.csdn.net/houzhe_adore/article/details/51315036

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!*

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Logstash的性能可以通过多个方面进行评估和优化。首先,可以进行基准测试,测试其吞吐量和处理速度。这可以通过分别测试Kafka的吞吐量和速度、Logstash的吞吐量和filter的处理速度以及Elasticsearch的吞吐量和索引速度来实现。通过这些基本性能指标,可以初步评估整个系统的性能,并对性能不符合预期的部分进行优化。\[1\] 在Logstash的配置方面,可以根据实际情况进行调整。例如,可以通过修改pipeline.workers参数来增加Logstash的工作线程数,以提高并发处理能力。同样地,可以通过修改pipeline.output.workers参数来增加输出线程数,以提高输出的并发能力。\[2\] 此外,还需要定期检查磁盘饱和度。Logstash的文件处理插件和错误日志可能会导致磁盘饱和。因此,建议在Linux上使用工具如iostat和dstat来监控磁盘使用情况,以及及时采取措施来避免磁盘饱和问题。\[3\] 总之,通过基准测试、适当调整配置以及定期监控磁盘使用情况,可以提高Logstash的性能并优化整个系统的性能。 #### 引用[.reference_title] - *1* *2* [logstash性能测试](https://blog.csdn.net/u013613428/article/details/77963582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Logstash性能调优](https://blog.csdn.net/it_lihongmin/article/details/79728812)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值