docker-time/main.js

57 lines
1.7 KiB
JavaScript
Raw Permalink Normal View History

2024-12-27 11:41:33 +08:00
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();