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

 仔仔衰才_887 发布于 2023-01-18 21:55

这个让我感到困惑,因为它似乎是随机发生的.我有一个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.'))
}));

一切都运行良好,但随后我在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 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#load_avg_1m=0.36 sample#load_avg_5m=0.22 sample#load_avg_15m=0.12
2014-03-10T00:27:48.570793+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#memory_total=638.78MB sample#memory_rss=607.07MB sample#memory_cache=0.00MB sample#memory_swap=31.71MB sample#memory_pgpgin=14872576pages sample#memory_pgpgout=33403153pages
2014-03-10T00:28:08.451643+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#load_avg_1m=0.54 sample#load_avg_5m=0.27 sample#load_avg_15m=0.14
2014-03-10T00:28:08.452211+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#memory_total=601.35MB sample#memory_rss=569.55MB sample#memory_cache=0.00MB sample#memory_swap=31.79MB sample#memory_pgpgin=14872576pages sample#memory_pgpgout=33482782pages
2014-03-10T00:28:28.616784+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#load_avg_1m=0.67 sample#load_avg_5m=0.32 sample#load_avg_15m=0.16
2014-03-10T00:28:28.617032+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#memory_total=605.14MB sample#memory_rss=573.27MB sample#memory_cache=0.00MB sample#memory_swap=31.87MB sample#memory_pgpgin=14872576pages sample#memory_pgpgout=33560778pages
2014-03-10T00:28:48.332406+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#load_avg_1m=0.76 sample#load_avg_5m=0.36 sample#load_avg_15m=0.18
2014-03-10T00:28:48.332628+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#memory_total=594.71MB sample#memory_rss=562.75MB sample#memory_cache=0.00MB sample#memory_swap=31.95MB sample#memory_pgpgin=14872576pages sample#memory_pgpgout=33647657pages
2014-03-10T00:29:08.501121+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#load_avg_1m=0.83 sample#load_avg_5m=0.40 sample#load_avg_15m=0.20
2014-03-10T00:29:08.501351+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#memory_total=599.86MB sample#memory_rss=567.83MB sample#memory_cache=0.00MB sample#memory_swap=32.03MB sample#memory_pgpgin=14872576pages sample#memory_pgpgout=33730317pages
2014-03-10T00:29:28.606331+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#load_avg_1m=0.88 sample#load_avg_5m=0.44 sample#load_avg_15m=0.21
2014-03-10T00:29:28.606565+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#memory_total=630.37MB sample#memory_rss=598.26MB sample#memory_cache=0.00MB sample#memory_swap=32.11MB sample#memory_pgpgin=14872576pages sample#memory_pgpgout=33823519pages
2014-03-10T00:29:29.054831+00:00 app[worker.1]: /profile_images/1857857435/251396_10150278547536115_50300066114_9027856_3493590_n_bigger.jpg
2014-03-10T00:29:48.392172+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#load_avg_1m=0.91 sample#load_avg_5m=0.48 sample#load_avg_15m=0.23
2014-03-10T00:29:48.392490+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#memory_total=1056.09MB sample#memory_rss=1023.97MB sample#memory_cache=0.00MB sample#memory_swap=32.13MB sample#memory_pgpgin=28008448pages sample#memory_pgpgout=33948237pages
2014-03-10T00:29:48.392958+00:00 heroku[worker.1]: Process running mem=1056M(103.1%)
2014-03-10T00:29:48.393236+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2014-03-10T00:30:08.453128+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#load_avg_1m=0.65 sample#load_avg_5m=0.45 sample#load_avg_15m=0.23
2014-03-10T00:30:08.453346+00:00 heroku[worker.1]: source=worker.1 dyno=heroku.18856063.9fde816b-1162-457c-aba0-b9b73584f61b sample#memory_total=1055.90MB sample#memory_rss=1023.71MB sample#memory_cache=0.00MB sample#memory_swap=32.19MB sample#memory_pgpgin=177823744pages sample#memory_pgpgout=34011963pages
2014-03-10T00:30:08.453806+00:00 heroku[worker.1]: Process running mem=1055M(103.1%)
2014-03-10T00:30:08.454034+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)

所以我问你们,女士们,先生们:WTF !!!

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有