码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-06-26 11:04:03      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:调优   机器学习   

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

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

标签:调优   机器学习   

原文地址:http://blog.csdn.net/lichangzhen2008/article/details/46646631

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!