🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

4707閲覧

sarで表示される数値について

sho88

総合スコア19

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2019/12/10 13:51

編集2019/12/10 13:53

こんばんは、sarで表示される数値についてです。

cronで1分間間隔に出力する設定にした場合、取得される数値は瞬間値でしょうか、平均値でしょうか。
仮に平均値とした場合、どのような計算方法で算出しているのでしょうか。
具体的には、以下の数値5,8,6がそれぞれどのような計算で平均値を求めているのかが、知りたいです。

#######################
時間|数値
12時00分00秒|5
12時01分00秒|8
12時02分00秒|6
#######################

ご教示いただけるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

take88

2019/12/11 12:51

5,8,6 は何の項目の値ですか?
sho88

2019/12/11 13:37

5,8,6は例です。 もしかして、CPU、メモリなど項目の違いによって、平均値か、瞬間値それぞれ異なるということでしょうか。
take88

2019/12/11 14:06 編集

項目によって違います。例えば ~/s とあるものは 秒間に換算した値です。
otn

2019/12/11 16:12

「瞬間値」とは? 瞬間だと平均取れないので、「使用率〇%」とか「秒あたり〇件」とかありえないのですが。
sho88

2019/12/11 21:39

CPU、メモリ、ネットワーク、ディスクI/0の項目ごとに取得間隔を決めたいです。 以下のサイトを見て、平均値なのか、と思っているのですが、基本的な平均値の計算方法がわからないので ご教示いただきと思いました。 ちなみに瞬間値ですが、例えば、5分間隔で取得を試みた場合、5分間の平均値なのか、その時間の値(瞬間値)なのか、ということです。 https://qiita.com/ikaro1192/items/eaba9197159caa8ad40b https://monaski.hatenablog.com/entry/2016/11/05/213458 よろしくお願いいたします。
take88

2019/12/12 02:05

Sarは累積データの、デルタ値をインターバル時間で割って、計算してると思いますが、そういうことで回答になってますか?
sho88

2019/12/12 09:39

ご回答いただき、ありがとございます。 >Sarは累積データの、デルタ値をインターバル時間で割って、計算してる 勉強不足で大変申し訳ございませんが、もう少しわかりやすくご教示頂くことは可能でしょうか。
guest

回答1

0

ベストアンサー

たとえば CPUの使用率(%)は、CPU時間をもとに求めます。
CPU時間は カーネル上でカウントされてまして、/proc/stat で確認できます。
値は、単位が 1/100秒で、起動してからの累積時間です。
※詳しくは proc の manpage を読んでみてください。

使用率は、2つの時点 A、Bの差(デルタ値)を、A, Bの間隔で割ることで得られます。

<例>
00時00分00秒 値=10000 → A
00時01分00秒 値=13000 → B

A、Bデルタ値=13000-10000=3000
使用率%=3000/6000=0.50=50%

sar で扱う項目は多岐にわたりますので、全てが同じ要領でやってるかは ちょっとわかりませんが(温度とかストレージとかどうなんだろう・・・)単位が /s のものや、% のものは 同じような感じだと思います。

投稿2019/12/12 14:59

take88

総合スコア1467

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sho88

2019/12/16 00:07

take88さん ご教示頂きありがとうございます。 1点だけ、追加で質問です。 >A、Bデルタ値=13000-10000=3000 >使用率%=3000/6000=0.50=50% "使用率%=3000/6000"の式の"6000"は、何の数でしょうか。 "単位が 1/100秒"に関連してる気はするのですが。。。 たびたびで申し訳ございませんが、どうぞ宜しくお願い致します。
take88

2019/12/16 00:20

/proc/stat に記録されているCPUの稼働時間(CPU時間といいます)です。 システムが起動してからの累積の時間です。 CPUの状態によって、User、System、Waitなどのそれぞれの累積時間が /proc/stat に記録されます。
take88

2019/12/16 00:21

単位は 1/100秒なので 6000=60秒ですね。
sho88

2019/12/17 00:14

take88さん ありがとうございます。CPUについては、だんだんわかってきました。 "proc/s"、"cswch/s"、"runq-sz"、"plist-sz"については、どのファイル(CPUでの場合は、/proc/stat)を参照しているか、ご教示頂けないでしょうか。CPUと同じように算出しているのかを確認したいと考えています。(/proc配下を探しているんですが、なかなか見つけることができません。。。)
take88

2019/12/18 14:12

うーん、たぶんカーネル内のカウンタの値だと思うんですけど、procファイルシステムだと どうやって見るのか ちょっとわからないですね・・・。 cswch/s はコンテキストスイッチ回数なんですけど、 この辺のコードの switch_count の値なんじゃないかと思いますね。 https://qiita.com/hikanda/items/b6d35ed3ffa3a2eddcc1 カーネル読ンだことある人なら もっと詳しくわかるかもですね・・・。
sho88

2019/12/24 00:02

take88様 お礼が遅くなってすみません。 "proc/s"、"cswch/s"、"runq-sz"、"plist-sz"については、ご教示頂いたURLを確認します。 お忙しいところご回答いただき、どうもありがとございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問