找回密码
 立即注册
查看: 2535|回复: 5

[流程系列] 请教:Node-RED流程内存泄漏问题如何排查?

[复制链接]

1

主题

2

回帖

69

积分

注册会员

积分
69
金钱
66
HASS币
0
发表于 2022-5-18 22:59:13 | 显示全部楼层 |阅读模式
版本: Node-RED 2.2.2
系统: 腾讯云服务器64位 centos7.9

流程大致说明:
1. inject启动立即执行一次,查询MySQL测点配置,写入flow对象;
2. inject定时任务5秒执行一次,查询时序数据库数据,读取flow中的测点配置,对测点进行使用http节点计算后写入统计库。
(流程中自定义代码没有闭包、自定义定时器、监听);
3. 打印发现整个流程执行时间200ms左右,将定时任务改为1分钟也无法组织内存无限制增长,应该不是任务堆积导致。

现象:
每次执行后,后台看到Node-RED进程的内存占用增加1M左右,几天后内存到达1.6G左右,Node-RED崩溃。


请教:
我该如何排查定位是哪里导致的内存泄漏?

流程图

流程图

内存不断增长

内存不断增长
回复

使用道具 举报

41

主题

2157

回帖

8556

积分

元老级技术达人

积分
8556
金钱
6343
HASS币
110
发表于 2022-5-19 08:45:44 | 显示全部楼层
二分法 看哪个节点执行后占用了内存并且无法释放
回复

使用道具 举报

8

主题

155

回帖

1280

积分

论坛技术达人

积分
1280
金钱
1107
HASS币
20
发表于 2022-5-19 08:53:26 | 显示全部楼层
盲猜数据库连接是不是没有关闭。
回复

使用道具 举报

48

主题

606

回帖

4009

积分

论坛元老

积分
4009
金钱
3355
HASS币
30
发表于 2022-5-19 12:38:22 来自手机 | 显示全部楼层
我不知道我的什么情况,有时会内存压缩占满,我是t1盒子刷的armbian
回复

使用道具 举报

40

主题

3016

回帖

1万

积分

超级版主

Nero

积分
11150
金钱
8044
HASS币
182
发表于 2022-5-19 12:41:50 | 显示全部楼层
wen_jxpx 发表于 2022-5-19 08:53
盲猜数据库连接是不是没有关闭。

有道理。
Nero
回复

使用道具 举报

1

主题

2

回帖

69

积分

注册会员

积分
69
金钱
66
HASS币
0
 楼主| 发表于 2022-5-21 10:54:58 | 显示全部楼层
感谢 ghostist 大佬提供的思路,定位到是node-red 提供的  join 节点导致的问题。
原流程: split节点分为多个http请求之后使用 join节点自动合并返回结果,然后处理。

修改后: joint节点从自动改为 手动 - 数组  模式,内存不再增长。

问题解决了,但是join节点的 手动/自动 有啥区别,为什么改为手动就正常了,这个节点的介绍我没看出问题,期待大佬解释下原理


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-5-2 14:44 , Processed in 1.932162 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表