System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开的实施例属于线程池,具体涉及一种动态可观测线程池管理方法及系统。
技术介绍
1、线程池(thread pool)是一种基于池化思想的线程管理工具,使用线程池可以减少创建销毁线程的开销,避免线程过多导致系统资源耗尽。在高并发以及大批量的任务处理场景,线程池的使用是必不可少的。在其使用过程中,线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。例如,对于计算密集型任务,线程数一般取cpu数量+2比较合适,线程数过多会导致额外的线程切换开销。
2、现有技术中至少存在如下问题:
3、1.线程池可随便定义,导致线程资源过多,造成服务器高负载。
4、2.线程池参数不易评估,随着业务的并发提升,业务面临出现故障的风险。
5、3.线程池任务执行时间超过平均执行周期,开发人员无法感知。
6、4.线程池任务堆积,触发拒绝策略,影响既有业务正常运行。
7、5.当业务出现超时、熔断等问题时,因为没有监控,无法确定是不是线程池引起。
8、6.原生线程池不支持运行时变量的传递。比如,mdc上下文在遇到线程池时停止。
9、7.当项目关闭时,大量正在运行的线程池任务将被丢弃。
10、8.在线程池运行时任
技术实现思路
1、本公开的实施例旨在至少解决现有技术中存在的技术问题之一,提供一种动态可观测线程池管理方法及系统。
2、本公开的一个方面提供一种动态可观测线程池管理方法,包括:
3、在服务器中设置线程池配置;其中,所述线程池配置包括线程管理策略;
4、客户端获取所述线程池配置,并根据所述线程池配置创建本地线程池;
5、提交任务至所述本地线程池;
6、所述本地线程池执行所述线程管理策略。
7、可选的,所述线程管理策略包括:
8、判断所述本地线程池是否在运行,响应于其未运行的情况,执行拒绝策略并告警。
9、可选的,当所述本地线程池在运行时,判断核心线程数是否已满,响应于其未满的情况,创建新线程并执行所述任务。
10、可选的,当所述核心线程数已满时,判断任务队列是否已满,响应于其未满的情况,将所述任务添加到任务队列。
11、可选的,当所述任务队列已满时,判断所述本地线程池是否达到最大配置数,响应于其未达到的情况,创建新线程并执行所述任务。
12、可选的,当所述本地线程池达到最大配置数时,执行拒绝策略并告警。
13、可选的,在所述本地线程池执行所述线程管理策略之后,所
14、述方法还包括:
15、所述客户端将所述本地线程池的运行状态上传到所述服务器。
16、可选的,在所述客户端将所述本地线程池的运行状态上传到所述服务器之后,所述方法还包括:
17、所述服务器根据所述本地线程池的运行状态,判断是否进行告警。
18、本公开的另一个方面提供一种动态可观测线程池管理系统,包括:
19、服务器,用于设置线程池配置;其中,所述线程池配置包括线程管理策略;
20、客户端,用于从所述服务器中获取所述线程池配置,并根据所述线程池配置创建本地线程池;其中,所述本地线程池用于执行所述线程管理策略;
21、提交模块,用于提交任务至所述本地线程池。
22、可选的,所述客户端还用于将所述本地线程池的运行状态上传到所述服务器;
23、所述服务器还用于根据所述本地线程池的运行状态,判断是否进行告警。
24、本公开的实施例的一种动态可观测线程池管理方法及系统,通过在服务器端封装线程池的配置参数,供客户端获取配置,以创建符合标准的线程池,使线程池被合理配置,避免了多种生产事故的产生。
本文档来自技高网...【技术保护点】
1.一种动态可观测线程池管理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述线程管理策略包括:
3.根据权利要求2所述的方法,其特征在于,当所述本地线程池在运行时,判断核心线程数是否已满,响应于其未满的情况,创建新线程并执行所述任务。
4.根据权利要求3所述的方法,其特征在于,当所述核心线程数已满时,判断任务队列是否已满,响应于其未满的情况,将所述任务添加到任务队列。
5.根据权利要求4所述的方法,其特征在于,当所述任务队列已满时,判断所述本地线程池是否达到最大配置数,响应于其未达到的情况,创建新线程并执行所述任务。
6.根据权利要求5所述的方法,其特征在于,当所述本地线程池达到最大配置数时,执行拒绝策略并告警。
7.根据权利要求1至6任一项所述的方法,其特征在于,在所述本地线程池执行所述线程管理策略之后,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,在所述客户端将所述本地线程池的运行状态上传到所述服务器之后,所述方法还包括:
9.一种动态可观测线
10.根据权利要求9所述的系统,其特征在于,所述客户端还用于将所述本地线程池的运行状态上传到所述服务器;
...【技术特征摘要】
1.一种动态可观测线程池管理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述线程管理策略包括:
3.根据权利要求2所述的方法,其特征在于,当所述本地线程池在运行时,判断核心线程数是否已满,响应于其未满的情况,创建新线程并执行所述任务。
4.根据权利要求3所述的方法,其特征在于,当所述核心线程数已满时,判断任务队列是否已满,响应于其未满的情况,将所述任务添加到任务队列。
5.根据权利要求4所述的方法,其特征在于,当所述任务队列已满时,判断所述本地线程池是否达到最大配置数,响应于其未达到的情况,创建...
【专利技术属性】
技术研发人员:赵强,
申请(专利权)人:光控特斯联上海信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。