1

やあみんな私は現在、CPUの負荷、RAMの使用量、ストレージの使用量を示す小さなスクリプトに取り組んでいます。私はすでにこの小さなスクリプトでCPU使用率を取得することができました:

$dat = getrusage();
$usertime= $dat['ru_utime.tv_usec'];
$systemtime= $dat['ru_stime.tv_usec'];
$finalresultcpu= ($systemtime/$usertime);
$cpuload = $finalresultcpu * 10;
echo $cpuload;

だから今私はRAMの使用量とストレージの使用量も取得したいと思います。WebサーバーはLinuxマシンで実行されています。モニタースクリプトphpsysinfoがあることは知っていますが、独自のソリューションを使用したいと思います。それから私は試しshell_execましたが、これはあまり役に立ちませんでした。誰かがphpまたはphpとjavascriptの組み合わせでこれをどのように解決できるか考えていますか?

4

1 に答える 1

1

このコードが Linux でのみ実行されることがわかっている場合は、特殊/proc/meminfoファイルを使用して、システムの仮想メモリ サブシステムに関する情報を取得できます。ファイルの形式は次のとおりです。

MemTotal:       255908 kB
MemFree:         69936 kB
Buffers:         15812 kB
Cached:         115124 kB
SwapCached:          0 kB
Active:          92700 kB
Inactive:        63792 kB
...

その最初の行 にMemTotal: ...は、マシン内の物理 RAM の量から、カーネルが独自に使用するために予約したスペースを差し引いたものが含まれています。これは、Linux システムで使用可能なメモリの簡単なレポートを取得するための、私が知っている最良の方法です。次のコードのようなもので抽出できるはずです。

<?php
  $fh = fopen('/proc/meminfo');
  $mem = 0;
  while ($line = fgets($fh)) {
    $pieces = array();
    if (preg_match('^MemTotal:\s+(\d+)\skB$', $line, $pieces)) {
      $mem = $pieces[1];
      break;
    }
  }
  fclose($fh);

  echo "$mem kB RAM found"; ?>

(注: このコードは、環境に合わせて微調整する必要がある場合があります。)

于 2012-12-25T15:40:47.760 に答える