我目前正在构建一个带有node-express后端的应用程序,并将其部署到CloudFoundry。我知道我可以从VCAP_APPLICATION var中获取总实例内存,并且我可以使用' os'来获取操作系统内存。模块。似乎我可以使用' util'来获取应用程序内存。模块,但process.memoryUsage()中返回的对象的参数似乎都不是我想要的。我正在做以下事情以获得所有这些:
// Modules I've tried
var express = require('express'),
app = express(),
os = require("os"),
util = require("util");
// Memory statistics I can get -> cannot get instance memory in use
var memLimit = JSON.parse(process.env.VCAP_APPLICATION)['limits']['mem'];
totalMem = os.totalmem(),
freeMem = os.freemem(),
memUsed = util.inspect(process.memoryUsage()).split(" "),
heapUsed = memUsed[6],
heapTotal = memUsed[4].substr(0,memUsed[4].length-1);
rss = memUsed[2].substr(0,memUsed[2].length-1);
有谁知道如何使用堆/ rss值或任何其他模块来获取我想要的内容?
答案 0 :(得分:3)
我可以想到两种可能实现这一目标的方法。
如果您不一定需要在应用中获取此值,cf
实用程序可以告诉您进程使用了多少内存。
运行cf app <app-name>
将提供有关给定应用的统计信息,其中一个是内存使用情况。
如果您需要使用应用代码,则可以尝试使用node-memwatch
包。它可以定期发出包含内存使用情况的事件。
您还可以查看代码node-memwatch
用于查看他们如何计算值。