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

提供:5ちゃんねるwiki
ナビゲーションに移動 検索に移動
(→‎簡便算出法の原理: 指数的加重移動平均 の、金融工学での応用との違い。など。)
(→‎はじめの節の前: 「掲示板サーバー」の「掲示板」を書き落としていたので、補記。)
 
(2人の利用者による、間の5版が非表示)
4行目: 4行目:
CPU への負荷を表す、UNIX 系 OS での数値の一種。<br>
CPU への負荷を表す、UNIX 系 OS での数値の一種。<br>


[[2ちゃんねる]] では、サーバーの OS として、<br>
[[2ちゃんねる]] では、掲示板サーバーの OS として、<br>
UNIX 系の FreeBSD を使用している。<br>
UNIX 系の FreeBSD を使用している。<br>


22行目: 22行目:
CPU の数と負荷平均の値が、ほぼ同じなら、<br>
CPU の数と負荷平均の値が、ほぼ同じなら、<br>
性能と負荷のバランスが、(この観点だけからは)ほぼ理想的だった<br>
性能と負荷のバランスが、(この観点だけからは)ほぼ理想的だった<br>
ことになる。<br>
ことになる。<ref><br>
実行時間の割り当てだけを待っているプロセスがある一方で、<br>
空き時間になっている CPU もある、<br>
というような偏りがなかったかどうかは、別の問題。<br>
</ref><br>
(ただし、「余力がある性能を」と考えるのが普通。)<br>
マイクロプロセッサーでは、「コアの数」が、内蔵する CPU の数。<br>


== その簡便算出法 ==
== その簡便算出法 ==
33行目: 39行目:
    前回の算出値
    前回の算出値
  とを、加重平均する。
  とを、加重平均する。
  そのウェイトは、
     1 分間なり、 5 分間なり、 15 分間なりでの、
     1 分以上前なり、 5 分以上前なり、 15 分以上前なり
算出回数を N とすると、前回の算出値のウェイトは、
  の算出値のウェイトが、
   exp( - 1 / N )
     1 / exp( 1 )
になっている。したがって、
  以下になるように定められている。
     1 分以上前なり、 5 分以上前なり、 15 分以上前なりの、
  算出値のウェイトは、
     exp( - 1 )  =  1 / exp( 1 )
  以下になる。
なお、浮動小数点計算をさけ、整数計算だけで済ませるため、<br>
なお、浮動小数点計算をさけ、整数計算だけで済ませるため、<br>
例えば、以下のようにしている。<br>
例えば、以下のようにしている。<br>
* 算出値は、 2 の L 乗倍した値で保持。
* 算出値は、 2 の L 乗倍した値を整数で保持。
* 「その時点で "ready to run" なプロセスの数」も、<br><!--
* 「その時点で "ready to run" なプロセスの数」も、<br><!--
-->まず L ビット左シフト。
-->まず L ビット左シフト。
* 各ウェイトは、 2 の M 乗倍されている。
* 各ウェイトは、 2 の M 乗倍した値を整数定数とする。
* 加算結果を M ビット右シフトする。
* 加算結果を M ビット右シフトする。


== 簡便算出法の原理 ==
== 簡便算出法の原理 ==
これは結局、次のようにしたうえでの、<br>
指数的加重移動平均 (exponentially weighted moving average)<br>
の応用例のひとつと考えられる。<br>
* (例えば) 1 秒おきに、サンプリングした数だけから、算出。
* (例えば) 1 秒おきに、サンプリングした数だけから、算出。
* 古い算出値の影響については、(その「寿命」のかわりに)<br><!--
* 古い算出値の影響については、(その「寿命」のかわりに)<br><!--
-->指数的減衰 での 平均寿命 が、 1 分間、 5 分間、 15 分間<br><!--
-->指数的減衰 での 平均寿命 が、 1 分間、 5 分間、 15 分間<br><!--
-->になるようにウェイトを決めている。
-->になるようにウェイトを決めている。
これは、<br>
 
指数的加重移動平均 (exponentially weighted moving average)<br>
なお、指数的加重移動平均 の、金融工学での応用とは、<br>
の応用例のひとつと考えられる。<br>
ただし、指数的加重移動平均 の、金融工学での応用とは、<br>
次のような点が違うらしい。<br>
次のような点が違うらしい。<br>
* 金融工学での応用では、(例えば)ある日の価格としては、<br><!--
* 金融工学での応用では、(例えば)ある日の価格としては、<br><!--
61行目: 71行目:
* 金融工学での応用での、ウェイトの通常の決めかたは、<br><!--
* 金融工学での応用での、ウェイトの通常の決めかたは、<br><!--
-->指数的減衰 での 平均寿命 とは無関係らしい。
-->指数的減衰 での 平均寿命 とは無関係らしい。
== 付記 ==
* 2ch から約 10 分おきに公開されている<br><!--
-->負荷平均 (load average(s)) データを<br><!--
-->監視している外部サイト
** 2ちゃんねる サーバ負荷監視所<br><!--
-->http://ch2.ma.cx/
** 2ch observation<br><!--
-->http://snowslide.s201.xrea.com/observation/


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

2015年2月26日 (木) 20:09時点における最新版

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

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

概要

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

その簡便算出法

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

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

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

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

簡便算出法の原理

これは結局、次のようにしたうえでの、
指数的加重移動平均 (exponentially weighted moving average)
の応用例のひとつと考えられる。

  • (例えば) 1 秒おきに、サンプリングした数だけから、算出。
  • 古い算出値の影響については、(その「寿命」のかわりに)
    指数的減衰 での 平均寿命 が、 1 分間、 5 分間、 15 分間
    になるようにウェイトを決めている。

なお、指数的加重移動平均 の、金融工学での応用とは、
次のような点が違うらしい。

  • 金融工学での応用では、(例えば)ある日の価格としては、
    その1日間にも変動があった価格から、
    なんらかの意味がある値が採用されるらしい。
  • 金融工学での応用での、ウェイトの通常の決めかたは、
    指数的減衰 での 平均寿命 とは無関係らしい。

付記

脚注


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

  2. 実行時間の割り当てだけを待っているプロセスがある一方で、
    空き時間になっている CPU もある、
    というような偏りがなかったかどうかは、別の問題。