当前位置:

首页 > 编程开发 > 如何用JS监控Linux系统的资源使用情况

如何用JS监控Linux系统的资源使用情况

利用Node.js内置os模块可快速获取CPU、内存等基础系统信息。若需更精细的进程级或磁盘监控,可借助node-os-utils等第三方库获取CPU使用率、内存详情及磁盘占用。结合实际需求选用合适工具,能有效提升系统监控效率与精准度。

用Ja vaScript来监控Linux系统的资源使用情况,这个需求在实际运维和开发中越来越常见。Node.js生态里,几个常用的原生模块和第三方库就能完成这个任务,操作起来并不复杂。

如何用JS监控Linux系统的资源使用情况

先说说最简单的办法。Node.js内置的os模块可以直接获取基础的系统信息,不需要额外安装任何依赖。

准备工作很简单,确保机器上已经安装了Node.js。然后新建一个文件,比如叫monitor.js,把下面这段代码放进去:

const os = require('os');

// 获取CPU信息
const cpuInfo = os.cpus();
console.log('CPU信息:', cpuInfo);

// 获取内存使用情况
const totalMemory = os.totalmem();
const freeMemory = os.freemem();
const usedMemory = totalMemory - freeMemory;
console.log('总内存:', totalMemory);
console.log('空闲内存:', freeMemory);
console.log('已使用内存:', usedMemory);

// 计算内存使用百分比
const memoryUsagePercentage = (usedMemory / totalMemory) * 100;
console.log('内存使用百分比:', memoryUsagePercentage.toFixed(2) + '%');

然后在终端里运行:

node monitor.js

CPU信息和内存使用情况就会直接打印出来。这个方法简单直接,适合快速查看系统状态。但话说回来,如果只是获取这些基础数据,用os模块确实够了,可一旦需要更精细的监控——比如进程级别的资源占用、磁盘使用详情——光靠内置模块就有点捉襟见肘了。

这时候就需要第三方库来帮忙了。node-os-utils就是一个很实用的选择,它能提供CPU、内存、磁盘等更丰富的指标。

用之前先安装:

npm install node-os-utils

然后改造一下刚才的监视器脚本:

const os = require('os');
const osUtils = require('node-os-utils');

// 获取CPU使用率
osUtils.cpuUsage(function (percent) {
    console.log('CPU使用率:', percent.toFixed(2) + '%');
});

// 获取内存使用情况
osUtils.virtualMemory(function (info) {
    console.log('总内存:', info.total);
    console.log('空闲内存:', info.a vailable);
    console.log('已使用内存:', info.used);
    console.log('内存使用百分比:', info.used / info.total * 100);
});

// 获取磁盘使用情况
osUtils.diskUsage('/', function (info) {
    console.log('根目录磁盘总空间:', info.total);
    console.log('根目录磁盘可用空间:', info.free);
    console.log('根目录磁盘已使用空间:', info.used);
    console.log('根目录磁盘使用百分比:', info.used / info.total * 100);
});

运行之后,输出就会更丰富,CPU使用率、内存详细状态、甚至磁盘根分区的占用情况都会显示出来。

在实际的监控场景里,还可以考虑结合pidusage库来追踪特定进程的资源消耗,这个库能获取某个进程的CPU和内存使用率,对于排查性能瓶颈特别有用。

整体看下来,从原生模块到第三方库,用Ja vaScript监控Linux资源这个事,覆盖面已经很全了。如果需要实时监控或者定期上报数据,把上面的逻辑放到定时任务或者Web服务里即可。关键在于根据实际需求选择合适的工具:简单的查询用os模块就够了,复杂的监控任务则需要node-os-utils这类库来补足细节。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 Linux
相关文章 更多
linux删除用户与用户组的方法及命令教程
linux删除用户与用户组的方法及命令教程

掌握Linux中删除用户和用户组的正确方法,避免残留文件和进程冲突。本文深入解析userdel和groupdel命令的参数用法,提供处理“用户仍在使用”等常见错误的实战方案。

Linux如何开启端口号?开放端口命令详解
Linux如何开启端口号?开放端口命令详解

详细讲解Linux如何开启端口号以及常用的开放端口命令。

crossover卸载软件下载及重新安装教程
crossover卸载软件下载及重新安装教程

遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
AirBuddy 3 macOS版
AirBuddy 3 macOS版
macOS

AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

AirServer macOS版
AirServer macOS版
macOS

AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

AnyDesk macOS版
AnyDesk macOS版
macOS

AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

WINDOWS 更多
讯飞绘文 网页版
讯飞绘文 网页版
Windows

讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

AirServer Windows版
AirServer Windows版
Windows

AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

AlwaysUp Windows版
AlwaysUp Windows版
Windows

AlwaysUp是一款面向Windows的系统服务注册与程序托管工具,可让普通应用、脚本及批处理在无人登录时随系统启动,并通过状态检测、异常重启、资源监控和邮件通知保障关键任务持续运行。