反馈已提交

网络繁忙

定时任务排队问题排查方案

  • 文档创建者:Roxy
  • 历史版本:5
  • 最近更新:Wendy123456 于 2025-09-17
  • 1. 概述

    用户在手动触发任务或者调度触发任务过程中,FineDataLink 工程中可能会出现由于内存不足、并发不足等问题导致的任务卡住、任务排队的问题,问题原因各不相同。本文将给出部分定时任务运行排队问题排查思路。

    2. 排查思路

    2.1 确认任务是否排队

    进入「运维中心>定时任务>运行记录」下,选择指定的运行记录,点击「查看详情」即可看到任务记录,如下图所示:

    若任务日志显示正在执行,没有节点信息,则表示任务正在排队中,如下图所示:

    然后可以查看是否是当前用户运行的任务导致的排队,如果上一次实例运行中,会堵塞下一次实例调用。

    一定要看全量记录, 不能只看最近一次运行记录,一定要看近一周或者全部时间, 不能只看当天记录,因为实际在运行中的任务可能是昨天的甚至前天的。如下图所示:

    注:若是由于高频率的调用定时任务导致的排队,可以使用实时任务,或者向技术支持获取帮助技术支持联系方式:前往「服务」,选择「在线支持」、电话「400-811-8890」)。

    2.2 查看日志

    查看日志判断是否是资源不足导致的。

    在「管理系统>智能运维>平台日志」下将「系统日志」导出,如下图所示:

    注:推荐设置日志级别为 info,info 级别的日志在任务启动时会检验对应的资源如下图所示:

    在日志中搜索对应任务名或者搜索 resource is not enough,如下图所示:

    资源检验会先检验内存,然后是线程并发,如果内存检验失败,说明是内存不足;如果内存检验成功并发检验失败,说明是并发不足。此时就需要去调整内存和并发资源。

    3. 定时任务运行所需资源

    这里就需要介绍内存和并发等的概念,以便用户在检查出问题后进行调整。

    icon提示:
    定时任务运行过程中,会同时受到内存并发限制,只有两者都有空余资源才会被运行。

    3.1 Tomcat 内存

    内存和并发可在「负载分配」功能中配置。如下图所示:

    29.png

    「内存分配」处的「单机环境总内存」与 Tomcat 内存相关,Tomcat 内存越大,「单机环境总内存」也越大。

    Tomcat 内存可到「负载监控」处查看。如下图所示:

    28.png

    Tomcat 内存大小的要求及配置步骤请参见:修改Tomcat内存

    建议用户使用 健康巡检 功能,检查系统中的各项配置是否合理,以辅助用户优化环境配置。

    3.2 内存控制&并发控制

    3.2.1 内存控制

    估算资源判断任务是否可以运行:定时任务总内存数(负载分配划分给定时任务的内存+共享空间剩余的内存)。如下图所示:

    场景
    任务状态举例
    任务估算内存>max(定时任务总内存,共享空间总内存)构建报错

    定时任务总内存5g(可用2g),共享空间2g(可用1g)

    • 任务估算内存10g:构建失败

    • 任务估算内存4g:任务状态为运行中,节点实际还未执行,在等资源

    • 任务估算内存1.5g:任务状态为运行中,节点开始执行

    任务估算内存<max(定时任务总内存,共享空间总内存),且任务估算内存>max(定时任务可用内存,共享空间可用内存)任务状态为运行中,节点实际还未执行,在等资源
    任务估算内存<max(定时任务可用内存,共享空间可用内存)任务状态为运行中,节点开始执行

    任务内存计算逻辑可参考:资源控制内存

    3.2.2 并发控制

    估算资源判断任务是否可以运行:数据开发总并发数(负载均衡划分给定时任务的并发数,默认:集群节点数*cpu核心数*10),如下图所示:

    场景
    任务状态举例
    任务估算并发>定时任务总并发构建报错定时任务总并发80(可用20)
    • 任务估算并发100:构建失败

    • 任务估算并发40:任务状态为运行中,节点实际还未执行,在等资源

    • 任务估算并发10:任务状态为运行中,节点开始执行

    任务估算并发<定时任务总并发,且任务估算并发>定时任务可用并发任务状态为运行中,节点实际还未执行,在等资源
    任务估算并发<定时任务可用并发任务状态为运行中,节点开始执行

    其中

    • 数据同步节点需要占用 2 个并发,数据转换节点每个输入算子和输出算子都占用 1 并发;

    • 如果开启了并行取数,按照实际切分键并发数来算。

    例如下面的数据转换预估占用 4 个并发。

    上述讲的内存和并发控制策略只对数据同步、数据转换和参数赋值这种同步节点和计算节点生效。对于 SQL脚本、Shell 脚本等节点,只受自身线程池限制。

    注:实际执行的数据开发/数据转换/参数赋值的并发数,同时受数据开发/数据转换/参数赋值「线程池」和「并发控制」限制,取二者最小值。

    类型
    线程池大小
    SQL 脚本

    默认为数据开发总并发数*4,倍数可调;

    实际限制最小值为50

    Shell脚本、Bat脚本、Python脚本共用一个线程池

    默认为数据开发总并发数*1,倍数可调;

    实际限制为1/2*CPU核数~5*CPU核数





    附件列表


    主题: 运维中心
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持