『瀚思彼岸』» 智能家居技术论坛

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

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

[复制链接]

1

主题

3

帖子

69

积分

注册会员

Rank: 2

积分
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崩溃。


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

流程图

流程图

内存不断增长

内存不断增长
回复

使用道具 举报

39

主题

2086

帖子

7869

积分

元老级技术达人

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

使用道具 举报

8

主题

154

帖子

1172

积分

论坛技术达人

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

使用道具 举报

44

主题

633

帖子

3656

积分

论坛元老

Rank: 8Rank: 8

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

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

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

有道理。
Nero
回复

使用道具 举报

1

主题

3

帖子

69

积分

注册会员

Rank: 2

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

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

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


回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-6-20 18:20 , Processed in 0.094279 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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