「負荷平均」の版間の差分
ナビゲーションに移動
検索に移動
(負荷平均 (load average(s)) は、CPU への負荷を表す、UNIX 系 OS での数値。) |
(誤解を生じかねない不適切な表現がみつかったので是正。など。) |
||
9行目: | 9行目: | ||
== 概要 == | == 概要 == | ||
UNIX 系 OS では、一時点での CPU への 負荷 を、<br> | UNIX 系 OS では、一時点での CPU への 負荷 を、<br> | ||
「プロセス」<ref><br> | |||
UNIX 系 OS での「プロセス」に相当するものを、<br> | UNIX 系 OS での「プロセス」に相当するものを、<br> | ||
「タスク」と呼ぶ他の OS もある。<br> | 「タスク」と呼ぶ他の OS もある。<br> | ||
</ref> | </ref>のうち、その時点で "ready to run" なもの<br> | ||
(すなわち、現に実行されているプロセスと、<br> | |||
実行時間の割り当てだけを待っているプロセス)の数<br> | |||
と、とらえるのが伝統的。<br> | と、とらえるのが伝統的。<br> | ||
この意味での 負荷 の、<br> | この意味での 負荷 の、<br> | ||
31行目: | 31行目: | ||
とを、加重平均する。 | とを、加重平均する。 | ||
そのウェイトは、 | そのウェイトは、 | ||
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 ビット右シフトする。
脚注
- ↑
UNIX 系 OS での「プロセス」に相当するものを、
「タスク」と呼ぶ他の OS もある。