const os = require('os'); const process = require('process'); // 存储一些数据来模拟内存使用 let memoryUsage = []; // 优雅关闭处理 process.on('SIGTERM', () => { console.log('收到 SIGTERM 信号,准备关闭...'); console.log('清理资源...'); memoryUsage = []; process.exit(0); }); // 输出系统信息的函数 function printSystemInfo() { const used = process.memoryUsage(); console.log('\n--- 系统信息 ---'); console.log('时间:', new Date().toISOString()); console.log('进程 ID:', process.pid); console.log('Node.js 版本:', process.version); console.log('平台:', process.platform); console.log('CPU 架构:', process.arch); console.log('可用内存:', Math.round(os.freemem() / 1024 / 1024), 'MB'); console.log('总内存:', Math.round(os.totalmem() / 1024 / 1024), 'MB'); console.log('CPU 负载:', os.loadavg()); console.log('进程内存使用:'); console.log(`- 堆总大小: ${Math.round(used.heapTotal / 1024 / 1024)} MB`); console.log(`- 堆使用: ${Math.round(used.heapUsed / 1024 / 1024)} MB`); console.log(`- RSS: ${Math.round(used.rss / 1024 / 1024)} MB`); console.log('------------------------\n'); } // 模拟一些内存使用 function simulateMemoryUsage() { const data = Buffer.alloc(1024 * 1024); // 分配 1MB memoryUsage.push(data); // 保持最多使用 100MB if (memoryUsage.length > 100) { memoryUsage.shift(); } } // 主循环 console.log('脚本启动...'); console.log('使用 CTRL+C 或发送 SIGTERM 信号来停止'); // 每5秒执行一次 setInterval(() => { printSystemInfo(); simulateMemoryUsage(); }, 5000); // 立即执行一次 printSystemInfo();