首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行Node.js (在Windows R2服务器上):如何减少我的任务消耗的内存量?

运行Node.js (在Windows R2服务器上):如何减少我的任务消耗的内存量?
EN

Stack Overflow用户
提问于 2015-07-21 00:18:36
回答 1查看 75关注 0票数 0

我有两个环境:一个是grunt环境,用于处理推送到实时生产数据库的每周进程。另一个是带有生产数据库的实时应用程序本身。

我最近在Grunt中做了一些优化,以更好的方式处理和存储数据,从而产生了更快的应用程序和更好的整体用户体验。我的问题是,我在每周生产期间进行的处理消耗了大量内存,需要大约10个小时。我同意花10个小时,但我的问题是内存使用率高达95%,实时应用的响应时间开始爬行,几乎没有响应,直到grunt进程完成。

我的问题是。如果不添加额外的RAM (现在是8 8GB),如何让Grunt运行此进程而不影响实时应用程序中的用户体验?谢谢你能提供的任何建议。

EN

回答 1

Stack Overflow用户

发布于 2015-07-21 01:05:53

我认为“正确”的答案是使用另一台机器。出于这个原因,您不应该在为您的生产网站提供服务的同一台计算机上运行批量处理任务-它们往往会消耗所有可用资源,而不会留下任何资源留给您的web服务器。

如果--不管是什么原因--另一台机器不是可选的,那么你需要诊断为什么你的批量任务消耗了这么多内存。node-inspectormemwatch是很好的起点。这些将允许您检查JavaScript堆以查看内存中的内容。

然而,JS堆通常被限制在1到1.9 GB之间(取决于节点版本),所以如果您的批量任务使用了更多,有几种可能性:

  1. 涉及多个节点子进程。
  2. 您的节点进程在JS堆之外分配了大量内存。这通常意味着你有很多(和/或一些非常大的)Buffer没有被释放。
  3. 你可能正在使用一个内存泄漏的本机(C++)模块。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31521472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档