node 进程管理问题?
发布于 11 年前 作者 liangwenle 4794 次预览 最后一次回复是 11 年前 来自 问答
本人写了一个爬虫,每天定时爬取指定网站的内容,挺方便的。问题来了:我的爬虫运行几天感觉服务器会好卡, top看它耗去的内存,居然跟一个b2b网站耗的内存差不多,后来有人跟我说用child.process的exec执行,这样一个任务结束时,会释放内存。 我对这方面不太了解,希望大牛指点一下,顺便分享一下大家用什么方法来处理这些问题的(进程、内存、回收等)。有图更好。谢谢!!
3 回复
node闭包很容易内存泄露, 仔细检查下?
首先检查一下是否有内存泄露,也就是说是否保持着一些随时间增加的数据的引用,导致这部分内存没法被垃圾回收释放。 当然,一般这种情况都是很隐蔽不易发现的,所以一个简单的办法就是用 forever, supervisor 这类进程管理工具运行,然后在程序中加一句
setTimeout(process.exit, 3600 * 1000)定时重启。谢谢大牛的意见。 求讨伐!! 我用 pm2 start do_timer.js 启动
do_timer.js 文件 require(‘iced-coffee-script’).register(); require(’./timer.iced’);
timer.iced 文件 later = require “later” later.date.localTime()
health.iced 文件