溫馨提示×

如何用JS監控Linux服務器性能

小樊
41
2025-10-05 22:04:13
欄目: 云計算

要使用JavaScript監控Linux服務器的性能,您可以通過以下幾種方法:

  1. 使用Node.js的os模塊:

Node.js是一個基于Chrome V8引擎的JavaScript運行時環境。它提供了一個名為os的內置模塊,可以用來獲取操作系統相關的信息。例如,您可以獲取CPU使用率、內存使用情況、磁盤空間等信息。

以下是一個簡單的示例,展示了如何使用os模塊獲取服務器性能信息:

const os = require('os');

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

// 獲取內存使用情況
const totalMemory = os.totalmem();
const freeMemory = os.freemem();
console.log('Total Memory:', totalMemory);
console.log('Free Memory:', freeMemory);

// 獲取磁盤空間信息
os.diskUsage('/', (err, stats) => {
  if (err) throw err;
  console.log('Disk Usage:', stats);
});
  1. 使用第三方庫:

有許多第三方庫可以幫助您更輕松地監控Linux服務器的性能。例如,pidusage庫可以用來獲取進程的資源使用情況,systeminformation庫可以提供詳細的系統信息。

要使用這些庫,您需要先安裝它們:

npm install pidusage systeminformation

然后在您的JavaScript代碼中使用它們:

const pidusage = require('pidusage');
const si = require('systeminformation');

// 獲取當前進程的資源使用情況
pidusage(process.pid, (err, stats) => {
  if (err) throw err;
  console.log('Process Stats:', stats);
});

// 獲取系統信息
si.cpu()
  .then(data => {
    console.log('CPU Info:', data);
  })
  .catch(err => {
    console.error(err);
  });

si.mem()
  .then(data => {
    console.log('Memory Info:', data);
  })
  .catch(err => {
    console.error(err);
  });

si.diskLayout()
  .then(data => {
    console.log('Disk Layout:', data);
  })
  .catch(err => {
    console.error(err);
  });
  1. 使用Web界面:

您還可以創建一個Web界面來展示服務器性能信息。這可以通過使用諸如Express.js之類的Web框架和Socket.IO之類的實時通信庫來實現。

首先,安裝所需的庫:

npm install express socket.io

然后創建一個簡單的Web服務器,展示服務器性能信息:

const express = require('express');
const http = require('http');
const socketIo = require('socket.io');
const os = require('os');

const app = express();
const server = http.createServer(app);
const io = socketIo(server);

app.get('/', (req, res) => {
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', socket => {
  setInterval(() => {
    const cpuInfo = os.cpus();
    const totalMemory = os.totalmem();
    const freeMemory = os.freemem();

    socket.emit('serverStats', {
      cpuInfo,
      totalMemory,
      freeMemory
    });
  }, 1000);
});

server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

index.html文件中,您可以創建一個簡單的HTML頁面來展示這些信息:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Server Stats</title>
</head>
<body>
  <h1>Server Stats</h1>
  <div id="cpuInfo"></div>
  <div id="memoryInfo"></div>

  <script src="/socket.io/socket.io.js"></script>
  <script>
    const socket = io();

    socket.on('serverStats', data => {
      document.getElementById('cpuInfo').innerHTML = JSON.stringify(data.cpuInfo, null, 2);
      document.getElementById('memoryInfo').innerHTML = `Total Memory: ${data.totalMemory}, Free Memory: ${data.freeMemory}`;
    });
  </script>
</body>
</html>

現在,當您訪問http://localhost:3000時,您將看到服務器性能信息的實時更新。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女