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

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

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