标签: pkgcloud

使用request&pkgcloud时,Node.js worker memory spike Error R14

这个让我感到困惑,因为它似乎是随机发生的.我有一个Node.js应用程序,可以传输推文(使用ntwitter),每秒向mongodb添加数百行.这部分总是工作正常,内存使用稳定.但最近我开始获取twitter头像的URL并将其保存到我们的rackspace CDN(使用"request"和"pkgcloud"模块).我每20秒一次循环最多10次(但通常更少)并运行此代码:

request(idocs[ikey].tweet.user.profile_image_url.replace('_normal.', '_bigger.')).on('response', function(response) {
    console.log(response.request.path);
    avatars.push(path.basename(path.dirname(response.request.path)) + '/' + path.basename(response.request.path));
    var headers = {};
    if (response.headers && response.headers['content-type']) {
        headers['content-type'] = response.headers['content-type'];
    }
    if (response.headers && response.headers['content-length']) {
        headers['content-length'] = response.headers['content-length'];
    }
    response.headers = headers;
}).pipe(client.upload({
    container: process.env.RACKSPACE_CONTAINER,
    remote: path.basename(path.dirname(idocs[ikey].tweet.user.profile_image_url)) + '/'
        + path.basename(idocs[ikey].tweet.user.profile_image_url.replace('_normal.', '_bigger.'))
}));
Run Code Online (Sandbox Code Playgroud)

一切都运行良好,但随后我在Nodetime中遇到以下疯狂:

记忆飙升!!!!

这里是"heroku logs -p worker -t"的输出,当事情突然变得混乱时(请注意它在600 MB左右的情况下会如何变好,然后在一个特定图像后跳跃到1GB以上 - 并且BTW所有图像都是标准的推特尺寸73x73,所以它不能是文件大小问题):

2014-03-10T00:27:28.425915+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#load_avg_1m=0.50 sample#load_avg_5m=0.24 sample#load_avg_15m=0.12
2014-03-10T00:27:28.426216+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#memory_total=630.87MB sample#memory_rss=599.24MB sample#memory_cache=0.00MB sample#memory_swap=31.63MB sample#memory_pgpgin=14872576pages sample#memory_pgpgout=33324565pages
2014-03-10T00:27:48.353902+00:00 app[worker.1]: /profile_images/434575414246539265/Noy_bE24_bigger.jpeg
2014-03-10T00:27:48.570496+00:00 heroku[worker.1]: source=worker.1 …
Run Code Online (Sandbox Code Playgroud)

heroku node.js pkgcloud

5
推荐指数
0
解决办法
798
查看次数

标签 统计

heroku ×1

node.js ×1

pkgcloud ×1