PHPでロードアベレージを取得する方法

Unix系サーバの負荷状態を示す値としてロードアベレージ(LoadAverage)があります。この値は、実行可能なプロセス数の平均値で、1分間平均、5分間平均、15分間平均の3つの値が取得できます。実行可能なプロセスというのは、CPUが今すぐに対応できる(しなければならない)仕事のことで、この数が増えるとサーバのレスポンスは悪くなります。弊社のサーバでは、Zabbixを利用してサーバ監視をしているのですが、PHP上で直接サーバ負荷を確認したいという要望がでてきたので、ロードアベレージを取得するプログラムを作成しました

ソースコード

<?php
$uptime = exec(‘uptime’);
$uptimeArray = explode(‘average:’, $uptime);
$uptime = $uptimeArray[1];
$uptimeArray = explode(‘,’, $uptime);
var_dump($uptimeArray);

実行結果

array(3) {
[0]=>
string(5) ” 0.49″
[1]=>
string(5) ” 0.92″
[2]=>
string(5) ” 0.87″
}

このプログラムを定期的に実行し、SmartBrainの負荷の推移を記録することになる予定です。

追記
関数sys_getloadavg()を使って同様の値を取得できました。PHPの標準関数を使ったほうが安全なので、sys_getloadavg関数を使うことになりそうです。

Facebookページもよろしくお願いします

CATEGORIES eラーニング, SmartBrain, 北海道ラボby.yasu.tanaka1 Comments2010.09.07
TAGS ,  
記事の投稿者
田中 康英
eラーニング支援部です。ときにメールマガジンを書き、ときにブログを書き、ときにソフトを翻訳し、ときに問い合わせに返信し、ときにUstreamスタジオの準備をし、とそんな感じでお仕事しています。

Facebook comments:

コメントをどうぞ

Eメールアドレスは公開されません。

Trackback URL

管理者の承認後に表示します。無関係な内容や、リンクだけで意見や感想のないものは承認しません。