关于通过线性回归来实现线程池的自动调优的讨论

本文详细介绍了如何通过线性回归实现线程池自动调优的过程,包括数据收集、建模、模型验证以及引入监控程序的方法。重点在于收集原始数据、处理分类变量和多余参数,以及如何选择合适的工具和语言进行模型构建。此外,文章还强调了调优经验的重要性,并提供了一种逐步实现的方案,最终将Weka中的Java代码整合到监控程序中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.一个人提议引起

这虾子(153193053) 10:05:01
想写个工具类来实现线程池的自动调优,大概就是采集一些相关指标,然后利用线性回归来预测最优设置,你们觉得这个靠谱不。

2.和木的建议

1、收集数据;
2、数据建模;
3、用R语言快速验证,得出回归模型
4、用Weka的包引入到监控程序

线性回归到不复杂,不过要收集原始数据,维度比较多;有些是分类变量或者多余参数,就涉及到哑变量和多重共线性的问题。
R语言有些工具,可以自动进行哑变量转换,去掉多余的维度。
这样最终得出的相关系数比较高的回归模型,拟合度较好。
然后呢作为程序员,把Weka中对应的java代码考到你的程序中,就可以给你们老板好好炫一下了

涉及到java线程池,要根据你们的业务场景进行压测,采集数据:

  • 主机的CPU个数(建议分为1、2、4、8、16、32)
  • 线程池大小(建议至少取10组数据,比如1、2、4、8、16、32、64、128等)
  • 测试的TPS
  • 对应的CPU使用率
  • 对应的磁盘IO
  • 对应的网络IO
  • 另外,有可能的话,也要对应调整JVM参数(这些回归时分类变量要转换为哑变量)
    • 如垃圾回收策略,是用CMS还是G1
    • 用CMS的话分配给CMS的线程是多少
    • xmx多大?new和old的比例?new中survive和Eden的的比例

这个你要先有调优经验,在丰富经验的基础上,才有可能进行线性回归。如果java调优经验不是很丰富,恐怕会漏掉关键参数。采集样本不准确,即使做线性回归了,最后出来的拟合函数也没有什么意义
开始可以模型简单些,只对应几个核心参数,先落地。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值