[发明专利]用于调整线程池容量的方法及装置在审
申请号: | 201510974829.6 | 申请日: | 2015-12-22 |
公开(公告)号: | CN105630606A | 公开(公告)日: | 2016-06-01 |
发明(设计)人: | 赵欣;高隆林;韩峰;何忠胜;李得亮 | 申请(专利权)人: | 山东中创软件工程股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京汇泽知识产权代理有限公司 11228 | 代理人: | 张瑾 |
地址: | 250014 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 调整 线程 容量 方法 装置 | ||
技术领域
本发明涉及计算机系统技术领域,尤其涉及一种用于调整线程池容量的方法 及装置。
背景技术
当前时代,网络应用随处可见,这些应用对计算机系统的响应速度、稳健 性和整体性能都提出了较高的要求。线程池技术是满足这些要求而采用的技术 之一,其通过提供若干个固定线程,轮流为大量的任务服务,当一个线程完成 任务时,并不马上销毁,而是接手另一个任务,从而减少创建和销毁线程的消 耗,可以最大程度的利用系统的资源。因此现在的应用服务器中大量使用线程 池技术。
现有的线程池调整策略都是基于用户设定的最小值和最大值,应用服务器 根据线程池的空闲情况在最小值和最大值之间进行调整,不能突破最小值和最 大值。用户通过设定线程池的最大值来限定线程池的容量。线程池的容量决定 了在指定时间内能够处理的并发任务数,线程池的容量太小,导致所有的任务 都在排队等待进入线程池,造成堵塞,而线程池的容量太大,则造成系统资源 的浪费。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
现有线程池的调整技术局限于用户配置,线程池容量不能进行动态调整, 在不能正确估计并发任务数的情况下会导致并发任务数超过预期值的时候,线 程池所在设备响应慢。
发明内容
本发明提供的用于调整线程池容量的方法及装置,能够使线程池所在设备 提供更强大的服务支撑能力,解决由于参数配置不当导致的性能瓶颈,能够提 高线程池所在设备的响应速度。
第一方面,本发明提供一种用于调整线程池容量的方法,包括:定期采集 线程池使用线程数;计算预定时间内连续多次采集到的线程池使用线程数的平 均值;计算所述平均值占线程池最优最大值的百分比S,其中所述最优最大值为 当前线程池使用的最大值并且所述线程池最优最大值的初始值被设置为用户配 置线程池最大值;根据所述百分比S以及所述线程池所在设备的CPU的使用率 和内存的使用率,调整线程池最优最大值。
可选地,在所述定期采集线程池使用线程数之前,还包括:判断已经启动 线程池自调优模式。
可选地,所述根据所述百分比S以及所述线程池所在设备的CPU的使用率 和内存的使用率,调整线程池最优最大值包括:判断所述百分比S是否大于预 定阈值P;如果是,则判断所述线程池所在设备的CPU的使用率和内存的使用 率是否均小于预定阈值L;如果是,则增大线程池最优最大值。
可选地,所述根据所述百分比S以及所述线程池所在设备的CPU的使用率 和内存的使用率,调整线程池最优最大值包括:判断所述百分比S是否大于预 定阈值P,如果否,则判断所述百分比S是否小于预定阈值Q,其中P大于Q; 如果是,则计算所述平均值占用户配置线程池最大值的百分比R;判断所述百分 比R是否小于预定阈值Q;如果是,则将当前线程池最优最大值设置为用户配 置线程池最大值。
可选地,在所述判断所述百分比S是否小于预定阈值Q之前,所述方法还 包括:判断所述当前线程池最优最大值是否大于用户配置线程池最大值,若是, 则判断所述百分比S是否小于预定阈值Q。
第二方面,本发明提供一种用于调整线程池容量的装置,包括:采集模块, 用于定期采集线程池使用线程数;第一计算模块,用于计算预定时间内连续多 次采集到的线程池使用线程数的平均值;第二计算模块,用于计算所述平均值 占线程池最优最大值的百分比S,其中所述最优最大值为当前线程池使用的最大 值并且所述线程池最优最大值的初始值被设置为用户配置线程池最大值;调整 模块,用于根据所述百分比S以及所述线程池所在设备的CPU的使用率和内存 的使用率,调整线程池最优最大值。
可选地,所述装置还包括第一判断模块;所述第一判断模块用于判断已经 启动线程池自调优模式。
可选地,所述装置还包括第二判断模块;所述第二判断模块用于判断所述 百分比S是否大于预定阈值P,如果是,则判断所述线程池所在设备的CPU的 使用率和内存的使用率是否均小于预定阈值L;所述调整模块用于在所述百分比 S大于预定阈值P且所述线程池所在设备的CPU的使用率和内存的使用率均小 于预定阈值L时,增大线程池最优最大值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东中创软件工程股份有限公司,未经山东中创软件工程股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510974829.6/2.html,转载请声明来源钻瓜专利网。