[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fol] Re: /proc/loadavg について


Onagi です。

前田さん、早速のご返答ありがとうございました。
man proc に情報があったのですね。見落としてました。

ご報告いただいた内容から判断すると、今回は /proc/stat を
見たほうがよさそうです。

起動以来の消費時間ですと、「ある時間内のCPU負荷率」を得る為には
前回値との差分を取る必要がありますね。

最新の…
 a:起動以来ユーザモードで消費した時間
  b:ユーザモード(低優先度)で消費した時間
  c:システムモードで消費した時間
  d:アイドルタスクで消費した時間

n秒前の…
 A:起動以来ユーザモードで消費した時間
  B:ユーザモード(低優先度)で消費した時間
  C:システムモードで消費した時間
  D:アイドルタスクで消費した時間

とすると
 
  total = (a-A)+(b-B)+(c-C)+(d-D)
  負荷率 = ((a-A)+(b-B)+(c-C)) / total * 100 [%]

になりますでしょうか。

MAEDA Atusi wrote:
> 
> MAEDA Atusi <maeda _at_ is.uec.ac.jp> writes:
> 
> > Onagiさんがお望みの0〜100%の値は、ある期間のうちCPUがidleでなかった期
> > 間の割合でしょうか? もしそうだとすると、/proc/loadavgの情報から直接求
> > めることはできません。/proc/loadavgを定期的にサンプリングしてrunningプ
> > ロセス数が0でなかった割合を計算すれば(ユーザプロセスのCPU時間について
> > は)算出できると思います。runningなプロセス数が0でもカーネル内でCPUを使っ
> > ていることはあり得ますが...
> 
> この情報を得るには/proc/stat のcpuの行を見た方が良さそうですね。
> 
> man procすると出て来ると思いますが、cat /proc/statして出て来る内容の中に
> 
> cpu  1359351 0 157137 10162406
> 
> なんていう行があります。4つの数字は左から、起動以来ユーザモードで消費
> した時間、ユーザモード(低優先度)で消費した時間、システムモードで消費し
> た時間、アイドルタスクで消費した時間を、それぞれ1/100秒単位で表したも
> のです。
> 
>                                 前田敦司

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: