57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
|
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();
|