「負荷平均」の版間の差分

提供:5ちゃんねるwiki
ナビゲーションに移動 検索に移動
(負荷平均 (load average(s)) は、CPU への負荷を表す、UNIX 系 OS での数値。)
 
(誤解を生じかねない不適切な表現がみつかったので是正。など。)
9行目: 9行目:
== 概要 ==
== 概要 ==
UNIX 系 OS では、一時点での CPU への 負荷 を、<br>
UNIX 系 OS では、一時点での CPU への 負荷 を、<br>
  その時点で "ready to run" な「プロセス」<ref><br>
  「プロセス」<ref><br>
UNIX 系 OS での「プロセス」に相当するものを、<br>
UNIX 系 OS での「プロセス」に相当するものを、<br>
「タスク」と呼ぶ他の OS もある。<br>
「タスク」と呼ぶ他の OS もある。<br>
</ref>(すなわち、<br>
</ref>のうち、その時点で "ready to run" なもの<br>
  実行時間の割り当てだけを待っているプロセスと、<br>
  (すなわち、現に実行されているプロセスと、<br>
  現に実行されているプロセス)の数<br>
  実行時間の割り当てだけを待っているプロセス)の数<br>
と、とらえるのが伝統的。<br>
と、とらえるのが伝統的。<br>
この意味での 負荷 の、<br>
この意味での 負荷 の、<br>
31行目: 31行目:
  とを、加重平均する。
  とを、加重平均する。
  そのウェイトは、
  そのウェイトは、
    1 分以上前なり、 5 分以上前なり、 15 分以上前なり
     1 分以上前なり、 5 分以上前なり、 15 分以上前なり
  の状態の影響が、ほぼ無視できるように
  の算出値のウェイトが、
  定められている。
     1 / exp( 1 )
以下になるように定められている。
なお、浮動小数点計算をさけ、整数計算だけで済ませるため、<br>
なお、浮動小数点計算をさけ、整数計算だけで済ませるため、<br>
例えば、以下のようにしている。<br>
例えば、以下のようにしている。<br>
43行目: 44行目:


== 脚注 ==
== 脚注 ==
<references/>
<references />

2015年1月4日 (日) 04:19時点における版

負荷平均 (load average(s)) は、
CPU への負荷を表す、UNIX 系 OS での数値。

2ちゃんねる では、サーバーの OS として、
UNIX 系の FreeBSD を使用している。

概要

UNIX 系 OS では、一時点での CPU への 負荷 を、
  「プロセス」[1]のうち、その時点で "ready to run" なもの
  (すなわち、現に実行されているプロセスと、
  実行時間の割り当てだけを待っているプロセス)の数
と、とらえるのが伝統的。
この意味での 負荷 の、
  最近 1 分間、最近 5 分間、最近 15 分間での、平均値
を、後述のような簡便算出法で概算して並べて、
load average(s) としている。

その簡便算出法

前述のような平均値を精密な記帳をして算出するのでは、
「そのために時間をとりすぎてしまう」と、みなされかねない。
そこで、以下のような簡便算出法で概算されている。

(例えば) 1 秒おきに、
  その時点で "ready to run" なプロセスの数
と、
  前回の算出値
とを、加重平均する。
そのウェイトは、
   1 分以上前なり、 5 分以上前なり、 15 分以上前なり
の算出値のウェイトが、
   1 / exp( 1 )
以下になるように定められている。

なお、浮動小数点計算をさけ、整数計算だけで済ませるため、
例えば、以下のようにしている。

  • 算出値は、 2 の L 乗倍した値で保持。
  • 「その時点で "ready to run" なプロセスの数」も、
    まず L ビット左シフト。
  • 各ウェイトは、 2 の N 乗倍されている。
  • 加算結果を N ビット右シフトする。

脚注


  1. UNIX 系 OS での「プロセス」に相当するものを、
    「タスク」と呼ぶ他の OS もある。