Please answer some questions before submitting your issue. Thanks!
Which version of XXL-JOB do you using?
2.3.0
Expected behavior
两台调度服务器,应该均匀调度,在性能监控表现上大致相同
Actual behavior
一台线程数飙升,cpu负载升高,另外一台间歇性的线程数上升
Steps to reproduce the behavior
- 测试配置
name | pods | cpu | memory
xxl-job-admin | 2 | 2000m | 8G
xxl-job-executor | 5 | 2000m | 4G
任务配置:
2600 | 一致性HASH | 测试1小时 | 任务分布: 第0秒触发2000个,第1秒触发400个,第2秒触发200个
参数配置:
jvm监控:
调度服务器一
调度服务器二
可用从监控数据中看出两台机器的性能表现差异巨大,绝大部分压力都落在了其中一台上面,达不到预期的分布式水平扩展的目的
想请教作者这个问题的原因,以及如何实现最近配置达到调度服务器均摊压力的目的
10条答案
按热度按时间2izufjch1#
任务配置选择轮询
zvokhttg2#
任务触发,是通过接口触发修改任务状态?还是直接调用trigger接口执行调度?
anauzrmj3#
直接创建2600个任务,配置好cron表达式
mrwjdhj34#
这两台机器连接的数据库是同一个数据库?
wb1gzix05#
是的,两个调度服务器集群部署,通过域名来和执行器通信,使用同一个数据库
2w3kk1z56#
你可以在执行器的机器上打印下,调度器的机器ip。应该只有一个调度中心的ip地址。
k97glaaz7#
@
那和这说明的不一致啊 #1875
ct2axkht8#
int preReadCount = (XxlJobAdminConfig.getAdminConfig().getTriggerPoolFastMax() + XxlJobAdminConfig.getAdminConfig().getTriggerPoolSlowMax()) * 20;
默认一次获取的任务数量是6千。
byqmnocz9#
现在问题是在这个任务量下,已经出现大量任务misfire和线程池满了的错误
wf82jlnq10#
任务刚启动会出现大量的misfire,不过下次再调度就不会出现了。线程池满的原因是fastTriggerPool最大线程数是200。线程队列只有1千。
可以修改下源码。