Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

多任务类型调度业务场景是否适用? #491

Open
ccl125 opened this issue Oct 17, 2024 · 3 comments
Open

多任务类型调度业务场景是否适用? #491

ccl125 opened this issue Oct 17, 2024 · 3 comments
Labels
question Further information is requested

Comments

@ccl125
Copy link

ccl125 commented Oct 17, 2024

使用场景:

我们的业务是这样的,会有多个不同的任务类型的离线任务,目前现状是多个任务类型用的一个公共的大的线程池。
比如总共30个线程由6个不同的任务类型去共用这些线程资源。

期望是做到不同任务类型线程隔离,每个任务类型用各自的线程池,做到线程池拆分。拆分后每个任务类型有5个线程资源。

想做到的效果是,虽然不同任务类型线程池隔离了,但是如果某一类型的任务当前没有的话,这类任务中的线程池资源可以给其他任务类型。因为如果不这样的话就会导致如果系统当前只有一个任务类型的话,不能重复利用所有的资源。

同时当系统某类任务多的时候也要保证不能把其他任务类型的线程资源全部占用掉。比如每个任务类型5个线程池,A类型的任务此时比较多,B类型的任务没有,那么A类型的任务可以把3个B类型的任务的线程资源划分到A类型的线程池中,这样保证如果突然来了B类型的任务,不至于B类型的任务一点资源都没有。

想问下针对这种使用场景,dynamic-tp适用吗?

@ccl125 ccl125 added the question Further information is requested label Oct 17, 2024
@KamToHung
Copy link
Collaborator

dynamic-tp的作用是给予线程池更多扩展功能,并且能够监控告警和动态调参等。针对于你提出的场景,可以根据自己定义的任务类型划分,如果没有提交新任务,配置了更大的maximumPoolSize也不会占用太多资源,需要考虑的所有业务都繁忙的时候机器是否顶得住,使用dynamic-tp配置好监控告警即可,流量大的时候动态调参。

@yanhom1314
Copy link
Collaborator

不同任务创建不同线程池,既然是隔离,相互之间就不应该有任何共享、借用关系(框架层面也支持不了),通过线程池自己的弹性策略,没任务时缩容、有任务时扩容,你这类业务场景完全可以满足了

@ccl125
Copy link
Author

ccl125 commented Oct 22, 2024

不同任务创建不同线程池,既然是隔离,相互之间就不应该有任何共享、借用关系(框架层面也支持不了),通过线程池自己的弹性策略,没任务时缩容、有任务时扩容,你这类业务场景完全可以满足了

dynamic-tp的作用是给予线程池更多扩展功能,并且能够监控告警和动态调参等。针对于你提出的场景,可以根据自己定义的任务类型划分,如果没有提交新任务,配置了更大的maximumPoolSize也不会占用太多资源,需要考虑的所有业务都繁忙的时候机器是否顶得住,使用dynamic-tp配置好监控告警即可,流量大的时候动态调参。

我们系统其实目前是可以做到通过配置中心的修改,应用动态监听每个不同任务类型的线程池参数,动态调整的。但是没办法做到将整个服务器机器的资源做到动态的共享。隔离是不同任务线程池相互隔离,共享和借用关系指的是对整个服务器资源的共享。

其实主要想实现的是通过任务的提交情况动态的对每个不同类型任务的线程池去做分配,现状是如果某个任务类型的任务多了,就手动的调大线程池参数,同时要确保整体的所有线程池参数不能超过机器资源的配置

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants