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调优经验不是很丰富,恐怕会漏掉关键参数。采集样本不准确,即使做线性回归了,最后出来的拟合函数也没有什么意义
开始可以模型简单些,只对应几个核心参数,先落地。
时间: 2024-10-11 07:49:38