龙空技术网

任务积压跑不动怎么办?DolphinScheduler任务流调优

大数据攻城狮白杨 88

前言:

如今我们对“内存分配失败是什么意思”大体比较讲究,看官们都需要知道一些“内存分配失败是什么意思”的相关文章。那么小编同时在网上汇集了一些有关“内存分配失败是什么意思””的相关资讯,希望兄弟们能喜欢,朋友们快快来学习一下吧!

【问题描述】

DolphinScheduler在生产正式使用后,经常出现master-server或者worker-server进程退出,在“监控中心”可以查看存活的master或者worker;

查看worker:

并且在gc日志中出现内存分配失败GC (Allocation Failure)

日志目录是:/logs/gc.log

【解决办法】

通过查阅官方文档,发现两个很有用的配置,master.exec.threads和worker.exec.threads;

配置master.properties,我这里配置为5,意思是一个master最对运行5个流程实例;

配置worker.properties,我这里设置为10,意思是一个worker,最多运行10个任务实例;

配置好后,已启动未运行的任务实例可以这样查看:

可以选择“运行中”查看运行状态的任务实例;我有两个worker,理论上就是最多20个正在运行的任务实例,可以我数了之后,发现不止20个;后面查阅资料得知,“任务依赖”的任务实例,不占用运行实例名额,原因是“任务依赖”的任务实例不占用资源;

去除“任务依赖”的任务实例后,果然是20个正着运行的任务。

【总结】

这是两个非常有用的参数,通过控制并发的任务和流程,从而控制同一时间需要的资源,避免任务一下全部拉起来,导致资源耗尽使进程退出;

设置了并发后,等于是把资源使用的峰值给抹平了,master-server和worker-server没有再出现进程退出和内存分配失败的异常。

标签: #内存分配失败是什么意思