AIXでのsarからの出力を理解する


11

SARから取得されたいくつかのデータを理解しようとしています。これについて主に3つの質問があります。最終的に、サーバーのクラスター全体の各サンプリング間隔でアイドル状態にあったCPUの数を特定したいと思います。

  1. CPUの多くがすべてのエントリに表示されるわけではありません。これは期待されたもので、正確にはどういう意味ですか?#2に関連していますか?
  2. 未使用の行があります(CPU = U)。ドキュメントは、「Uはシステム全体の未使用容量を示す」と言います。「システム全体の未使用容量」の正確な定義や定義はまったく見つかりません。「未使用の容量はアイドル状態が70%だった」のような行を解釈する方法がわかりません。
  3. 最後に、-or all線の計算方法がわかりません。それはすべてのCPUの平均だと思いますが、すべてのCPUで計算すると、その行にあるものとは大きく異なる答えが得られます。誰かがその計算に何が入るのか正確に教えてもらえますか?SARに関するこの関連する質問をよく見ると、system-wideアイドル率は、各CPUのアイドル率と「physc」値の積の合計であるように見えます。残念ながら、physcまたはentc%(存在する場合)がないので、これを自分のデータで確認することはできません。それが正しい場合、physcアイドル率を正確に理解するために値が必要であることを意味しますか?

ここに私が見ているもののいくつかの例があります。これらはすべて同じ日からのものです。

CPU | Idle    CPU | Idle    CPU | Idle
----------    ----------    ----------
0   | 8       0   | 15      0   | 17
1   | 25      1   | 94      1   | 32
2   | 79      2   | 100     2   | 97
3   | 62      3   | 99      3   | 71
4   | 5       4   | 13      4   | 5
5   | 7       5   | 13      5   | 23
6   | 6       6   | 99      6   | 71
7   | 7       7   | 44      7   | 98
8   | 11      8   | 12      8   | 48
9   | 17      12  | 0       12  | 38
10  | 33      16  | 12      16  | 37
11  | 64      20  | 3       20  | 42
12  | 6        U  | 95       U  | 97
13  | 6        -  | 15       -  | 85
14  | 6       
15  | 6       
16  | 12      
17  | 15      
18  | 62      
19  | 69      
20  | 7       
21  | 7       
22  | 6       
23  | 7       
 U  | 80       
 -  | 15       

case 1: avg(24): 22
case 2: avg(12): 42
case 3: avg(12): 48

このデータは、実行するスクリプトによって生成されsar -P ALL 1 1ます。次に、awkコマンドを実行します。私はawkが苦手ですが、これらは明らかに重要な部分です。

フィルタ: /System|AIX|^$|%/ {next}

解析: {k=0;if(NR==7) k=1} {sub("^-", "all", $1); cpu=$(1+k); user=$(2+k); sys=$(3+k); io=$(4+k); idle=$(5+k)}

これは、私がawkについてほとんど理解していないことと、出力の例から私が見たことに基づいて正しいようです。

ケース2の欠損値がすべてゼロであると仮定すると、平均は21であり、ケース1といくらか一貫しているように見えます。ただし、ケース3でその仮定を行うと、24%になり、85%全体的なCPUアイドル状態に対してsarによって指定されたパーセント値。

丸1日のキャプチャ(30秒ごと)のグラフは次のとおりです。

ここに画像の説明を入力してください

「システム全体」のアイドル時間がほとんどない場合、平均CPUアイドルと「システム全体」のアイドルの間の相関はほぼ完全です。しかし、「システム全体」のアイドル時間が増えると、相関関係は非常に弱くなります。これらは確定的なマシンであるという仮定に基づいて作業していると、私が持っているデータは全体像を示していないことがわかります。しかし、私はどれくらい気にしますか?

一部のCPUが各ポイントで報告されない理由を完全には理解していませんが、上記の例にあるように、欠落しているCPUが均等に分散されていません。また、このレッドブックを読んで、これらは論理CPUである必要があり、physc数値がないと、これらの値を使用してできることは多くないと思います。Uさまざまな方程式で値を使用しようとしましたが、意味のあるものは見つかりませんでした。全体的なアイドルパーセンテージを額面どおりに取得できるかどうかさえ、私には明確ではありません。

:sarからのこのデータのキャプチャに何か問題があります。常に戻る必要がある場合は、#1に対する完全に有効な回答です。


その出力を得るためにどのコマンドを実行していますか?標準sar -P ALL出力のようには見えません。
スイスの

@スイスこれは私が書いていないスクリプトからのものです。呼び出してsar -P ALL 1 1からawkを使用してCPU番号を調べ、次にユーザー、システム、IO待機、アイドルの割合を調べます。回答にさらに情報を追加します。
JimmyJames 2017年

@Swissスクリプトの出力がどのようになるかをより反映するように例を編集しました。
JimmyJames 2017年

sar -P ALLこのスクリプトの出力ではなく、直接の出力を提供できますか?それは非標準のスクリプトであり、誰もそれを見ないでそれが何をするかをあなたに伝えることはできません。
スイスの

@スイス残念ながらできません。スクリプトが表示され、出力されます。私が明確にできることの説明から欠けているものはありますか?
JimmyJames 2017年

回答:


4

あなたが提供した出力は、標準sar -P ALLまたはsar -u出力とは異なって見えます。手動でフォーマットしたのか、別のツールで実行していたのかはわかりませんが、これを理解するのに十分な情報があると思います。

ここに重要な情報があります。 sar

注:SMPマシンでは、アクティビティーがまったくない(すべてのフィールドで0.00)プロセッサーは、使用不可(オフライン)プロセッサーです。

クラスターで実行しているので、SMPマシンを使用していると想定してもかなり安全に思えます。

例2と3では、24コアのうち12コアのみが統計を報告していることに注意してください。manページで説明されているように、これらのコアが無効になっていると想定している場合、統計は理にかなっています。

次のようにデータを更新して、無効なコアを示します -

0   | 8       0   | 15      0   | 17
1   | 25      1   | 94      1   | 32
2   | 79      2   | 100     2   | 97
3   | 62      3   | 99      3   | 71
4   | 5       4   | 13      4   | 5
5   | 7       5   | 13      5   | 23
6   | 6       6   | 99      6   | 71
7   | 7       7   | 44      7   | 98
8   | 11      8   | 12      8   | 48
9   | 17      9   | -       9   | -
10  | 33      10  | -       10  | -
11  | 64      11  | -       11  | -
12  | 6       12  | 0       12  | 38
13  | 6       13  | -       13  | -
14  | 6       14  | -       14  | -
15  | 6       15  | -       15  | -
16  | 12      16  | 12      16  | 37
17  | 15      17  | -       17  | -
18  | 62      18  | -       18  | -
19  | 69      19  | -       19  | -
20  | 7       20  | 3       20  | 42
21  | 7       21  | -       21  | -
22  | 6       22  | -       22  | -
23  | 7       23  | -       23  | -

次に、以下を使用して平均を計算できます(これは私が書いた簡単なワンライナーです。もっと良いものを書くことができると確信しています。)

$ awk '{idle = $3; output += idle; if (idle >= 0) {cores += 1} } END {printf "Ave idle%%: %f  Cores: %d\n", output / cores, cores }' input_file
Ave idle%: 22.208333  Cores: 24
$ awk '{idle = $6; output += idle; if (idle >= 0) {cores += 1} } END {printf "Ave idle%%: %f  Cores: %d\n", output / cores, cores }' input_file
Ave idle%: 42.000000  Cores: 12
$ awk '{idle = $9; output += idle; if (idle >= 0) {cores += 1} } END {printf "Ave idle%%: %f  Cores: %d\n", output / cores, cores }' input_file
Ave idle%: 48.250000  Cores: 12

例2と3のコアの数は12であり、平均は例の出力に表示されるものと一致することに注意してください。

最初のケースと2番目のケースの間のある時点で、CPUコアの半分が無効になっているようです。

質問の簡単な要約:

  1. データが欠落している場合は、プロセッサコアが無効になっている可能性があります。
  2. U平均線ではと異なるUことmanページインチ UプロセッサID欄の下に表示されるはずのmanページで参照されます。
  3. あなたが提供したsar出力は標準出力とは異なり、提供された情報が平均線上で何を参照しているUかを判断するのに十分な情報がありませんall。最初の数値はアクティブコアのアイドル%のようですが。

「例2と3のコアの数は12であり、平均は例の出力に表示されるものと一致することに注意してください。」すみません、はっきりしていないかもしれませんが、数値から平均を計算しました。それはsarからではありません。Uそしてall値が線としてSARから来ています。私が理解しているものとはcpu値とは根本的に異なるものであるため、私はそれらを私の答えで解き放ちました。
JimmyJames 2017年

コアが無効になっている場合、「システム全体」のアイドル時間がケース2の方がケース3よりもはるかに短いのはなぜですか。彼らが同じ12 CPU間でほぼ同じ平均アイドル時間をどのように持つことができるのか、システム全体のアイドル時間が完全に異なるかを理解するのに苦労しています。
JimmyJames 2017年

マシンに一定の負荷がかかっているときは、すべてのプロセッサからの出力が表示されます。これは、これらが無効になっていることは正しいことを私に示唆します。システム全体のアイドルが無効化されていないCPUのアイドルとどのように関係しているのか、私はただ苦労しています。
JimmyJames 2017年

問題を明確にするために、いくつかの変更を加えて質問を更新しました。したがって、ケース2を見ると、12個のCPUが無効であり、sys-idleの割合が24個すべてに基づいている場合、idle%は50%を下回ることはできません。それで、私が15%を持っているとすれば、sys idle%は無効にされたCPUを無視する必要があるということですよね?
JimmyJames 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.