F.Ko-Jiの「一秒後は未来」

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

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)
}

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

最近はもっぱら仕事と育児、どちらかというと育児のほうが忙しいです。もう長いことドットインストールの開発をしています。

» 詳しいプロフィールや運営サービスの一覧など