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

提供:5ちゃんねるwiki
ナビゲーションに移動 検索に移動
(誤解を生じかねない不適切な表現がみつかったので是正。など。)
(「CPU の数と負荷平均の値が、ほぼ同じなら、性能と負荷のバランスが、(この観点だけからは)ほぼ理想的だったことになる。」を加筆。など。)
2行目: 2行目:
[[category:サーバ]]
[[category:サーバ]]
[[負荷平均]] (load average(s)) は、<br>
[[負荷平均]] (load average(s)) は、<br>
CPU への負荷を表す、UNIX 系 OS での数値。<br>
CPU への負荷を表す、UNIX 系 OS での数値の一種。<br>


[[2ちゃんねる]] では、サーバーの OS として、<br>
[[2ちゃんねる]] では、サーバーの OS として、<br>
20行目: 20行目:
を、後述のような簡便算出法で概算して並べて、<br>
を、後述のような簡便算出法で概算して並べて、<br>
load average(s) としている。<br>
load average(s) としている。<br>
CPU の数と負荷平均の値が、ほぼ同じなら、<br>
性能と負荷のバランスが、(この観点だけからは)ほぼ理想的だった<br>
ことになる。<br>


== その簡便算出法 ==
== その簡便算出法 ==
40行目: 43行目:
* 「その時点で "ready to run" なプロセスの数」も、<br><!--
* 「その時点で "ready to run" なプロセスの数」も、<br><!--
-->まず L ビット左シフト。
-->まず L ビット左シフト。
* 各ウェイトは、 2 の N 乗倍されている。
* 各ウェイトは、 2 の M 乗倍されている。
* 加算結果を N ビット右シフトする。
* 加算結果を M ビット右シフトする。


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

2015年1月8日 (木) 07:00時点における版

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

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

概要

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

その簡便算出法

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

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

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

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

脚注


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