在debian10 上,docker里安装了干净的ubantu20.04, apt install gcc, g++, make, cmake, 版本如下:
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
GNU Make 4.2.1
cmake version 3.16.3
按照 [neuron/Install-dependencies.md at main · emqx/neuron · GitHub]的说明,编译安装了依赖文件
下载了Release 2.5.3 Release · emqx/neuron · GitHub 中的 source code,进行了编译
然后在源码的 build目录下, 运行 ./neuron --log
功能都正常, 但用top来看neuron进程:
没有配任何南向/北向设备的情况下, 运行后 VIRT的值为20.0t , 观察RES的值,会缓慢增长
配置了Modbus TCP南向设备,加入2000个tag, VIRT的值为20.0t, RES的值会快速增长
如果我下载https://github.com/emqx/neuron/releases/download/2.5.2/neuron-2.5.2-linux-amd64.deb,安装这个deb包运行, 则不会出现内存泄漏的情况, top 的VIRT值也是正常的。
我在debian10 上编译, gcc version 8.3.0 (Debian 8.3.0-6) ,GNU Make 4.2.1,cmake-3.23.0 , 源码编译后,运行也是同ubuntu20.04 上一样,有内存泄漏情况。 但安装neuron-2.5.2-linux-amd64.deb,运行就不会有内存泄漏。
源码编译时,有什么参数没有调对吗?