我看到有几个节点程序包允许您查找特定进程的使用情况,例如https://www.npmjs.com/package/usage
我试图得到整体服务器使用/统计(CPU和内存),而不仅仅是一个特定的进程或另一个。甚至可能是磁盘空间使用。
我目前找不到这样的东西,这可能吗?
我看到有几个节点程序包允许您查找特定进程的使用情况,例如https://www.npmjs.com/package/usage
我试图得到整体服务器使用/统计(CPU和内存),而不仅仅是一个特定的进程或另一个。甚至可能是磁盘空间使用。
我目前找不到这样的东西,这可能吗?
7条答案
按热度按时间oxalkeyp1#
原生模块os可以给予一些内存和cpu使用统计信息。
cpus()函数给你一个平均值,但是你可以通过使用一个公式和一个区间来计算当前的使用情况,就像this答案中提到的那样。
还有一个包可以为您完成此任务,称为os-utils。
从github上的例子中可以看出:
有关磁盘的信息,可以使用diskspace
mhd8tkvw2#
检查node-os-utils
kulphzqa3#
由于我没有找到解决这个问题的代码,也不想仅仅依靠其他软件包来获得一些代码行,所以我编写了一个函数来计算两个连续函数调用之间的平均CPU负载。我假设
t_idle + t_user + t_sys = total cpu time
,结果与我的Windows任务管理器类似,但是,用法对我来说似乎更敏感一些(eidogg.音乐播放增加的cpu负载比在Windows任务管理器中更多)。如果我的假设是错误的,请纠正我。klsxnrf14#
您也可以使用
process.cpuUsage()
返回系统和用户的cpu时间(以微秒为单位),它还可以计算与上一次调用的时间差。https://nodejs.org/api/process.html#process_process_cpuusage_previousvalue
fnvucqvd5#
Node.js具有
os.loadavg()
方法更多信息here
hpcdzsge6#
lb3vh1jj7#
当然,这是可能的。但是你需要一个C++原生模块来实现。记住,每个操作系统都有自己的查询系统资源使用情况的方式。
例如,如果您使用的是Windows(这可能正是您所需要的,因为
usage
不支持Windows),您可以执行以下操作performance.cpp
performance_algorithm.cpp