ネットサービスとかGoogleとか豆知識とか。

Index > プログラミング > PHP > PHPにロードアベレージを取得する関数があった
PHP
2014年02月19日 00:55

PHPにロードアベレージを取得する関数があった

  • このエントリーをはてなブックマークに追加
  • ... PV
スポンサード リンク

php-load-average-func.jpg

PHP からロードアベレージを取得するには sys_getloadavg という関数を使えばいいらしい。(PHP5.1.3以上、Windows環境以外)

» PHP: sys_getloadavg - Manual

<?php

$la = sys_getloadavg();
var_dump($la);

返り値は1分、5分、15分間の平均ロードアベレージを格納した配列。

array(3) {
  [0]=>
  float(1.2)
  [1]=>
  float(2.01)
  [2]=>
  float(2.31)
}

バッチプログラムを複数起動させたいけどあまり多く起動させるとサーバーの負荷がやばいことになる。なので同時に起動する数を制限したり夜中の負荷の高い時間帯には起動させないようにしたりと色々試行錯誤していて、結局プログラム起動時にロードアベレージが一定値より低ければ起動して、高ければ終了するというのが最も効率的だろうということになった。