8

私は分散サーバーシステムを持っています。

PubSub を介して調整された多数のサーバーがあります。それらはすべて統計サーバーに接続されています。サーバーは毎分、統計情報を統計サーバーに送信します (処理されたリクエストの数、平均時間など)。

ですから... この統計メッセージにシステム ステータスを含めるとよいでしょう。CPU 負荷 (すべてのコア) と空きメモリの量が必要です。

少し回避策を講じて、「exec」でLinuxコマンドを呼び出し、回答を解析し、送信用のJSONデータを形成することにしました。

しかし、コマンドラインからこのデータを取得するにはどうすればよいですか?

Mac OS XI では、geektool スクリプトを使用して必要なものをすべて簡単に取得できますが、Linux (debian) では機能しません。

例えば:

top -l 1 | awk '/PhysMem/ {print "Used: " $8 " Free: " $10}'

Mac OS X Lion では次のようになります。

Used: 3246M Free: 848M

そして、debianの単なるエラー...

4

4 に答える 4

7

Linux では、/proc を使用できます。統計情報を読み取るためのコマンド ラインの例については、こちらを参照してください。

ただし、 fs.readFile()を使用して、ノードから直接ファイルを読み取る方がよいでしょう。

更新:おそらくより優れたOS APIもあります。使用例: Node.js の os.cpus() の出力をパーセンテージに変換する

于 2012-04-26T12:12:58.303 に答える
1

コマンドのラッパーであるos-usageを試すことができますtop

CPU使用率やメモリ使用率などの統計を提供します。使用例:

var usage = require('os-usage');

// create an instance of CpuMonitor
var cpuMonitor = new usage.CpuMonitor();

// watch cpu usage overview
cpuMonitor.on('cpuUsage', function(data) {
    console.log(data);

    // { user: '9.33', sys: '56.0', idle: '34.66' }
});

// watch processes that use most cpu percentage
cpuMonitor.on('topCpuProcs', function(data) {
    console.log(data);

    // [ { pid: '21749', cpu: '0.0', command: 'top' },
    //  { pid: '21748', cpu: '0.0', command: 'node' },
    //  { pid: '21747', cpu: '0.0', command: 'node' },
    //  { pid: '21710', cpu: '0.0', command: 'com.apple.iCloud' },
    //  { pid: '21670', cpu: '0.0', command: 'LookupViewServic' } ]
});
于 2016-04-07T11:19:01.300 に答える