先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
- TCP连接数 :logstash后端仅与3个ES节点建立TCP连接,连接数无问题
- 网络带宽: 万兆网卡支持,无性能瓶颈。
logstash input (目前 非瓶颈)
- 接收filebeat推送日志,接收量由filter,output协同决定。
logstash filter & logstash output ( 瓶颈)
- 升级logstash版本 1.7 -> 2.2
2.2版本之后的logstash优化了input,filter,output的线程模型。 - 增大 filter和output worker 数量 通过启动参数配置 -w 48 (等于cpu核数)
logstash正则解析极其消耗计算资源,而我们的业务要求大量的正则解析,因此filter是我们的瓶颈。官方建议线程数设置大于核数,因为存在I/O等待。考虑到我们当前节点同时部署了ES节点,ES对CPU要求性极高,因此设置为等于核数。 - 增大 woker 的 batch_size 150 -> 3000 通过启动参数配置 -b 3000
batch_size 参数决定 logstash 每次调用ES bulk index API时传输的数据量,考虑到我们节点机256G内存,应该增大内存消耗换取更好的性能。 - 增大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 调用次数
- 根据CPU核数调整合适的worker数量,观察系统负载。
- 根据内存堆大小,调整batch_size,调试JVM,观察GC,线程是否稳定。
- 调整flush_size,这个值默认500,我在生产环境使用的1500,这个值需要你逐步增大,观察性能,增大到一定程度时,性能会下降,那么那个峰值就是适合你的环境的。
来自:http://blog.csdn.net/houzhe_adore/article/details/51315036
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!*