nodejs 获取windows cpu、gpu和内存使用情况

本文档介绍了如何使用Node.js获取并定期更新系统CPU、GPU占用率以及内存使用情况,通过getMem()、getCPUUsage()和getGPUUsage()函数实现,适合运维和开发者了解设备性能。
摘要由CSDN通过智能技术生成

获取系统cpu、gpu和内存使用情况

const nodeCMD = require('node-cmd');
const os = require('os-utils');

const serverInfo = {
	cpuUsage: 0,
	gpuUsage: 0,
	freeMem: 0,
	totalMem: 0
}

/**
 * 获取系统内存情况
 */
function getMem() {
	serverInfo.freeMem = os.freemem()
	serverInfo.totalMem = os.totalmem()
}

/**
 * 获取系统cpu利用率
 */
async function getCPUUsage() {
	let promise = new Promise((resolve, reject) => {
		os.cpuUsage(function(v){
			resolve(v)
		});
	});
	
	serverInfo.cpuUsage = await promise
}

/**
 * 获取系统gpu(nvidia)利用率
 */
async function getGPUUsage() {
	let promise = new Promise(resolve => {
		nodeCMD.get('nvidia-smi -q -d UTILIZATION', (e, b, c) => {
			if (!e) {
				let a = b.split('\r\n').find(s => s.indexOf('Gpu') >= 0 && s.indexOf('%') >= 0)
				let start = a.indexOf(':')+2
				let end = a.indexOf('%')-1
				let ss = a.substring(start, end)
				resolve(ss)
			}
		})
	})
	serverInfo.gpuUsage = await promise
}


setInterval(() => {
	getCPUUsage()
	getGPUUsage()
	getMem()
}, 8000)

module.exports = serverInfo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bdawn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值