Red-HatベースのLinuxの出力が、DebianベースのLinuxによって異なる解釈ができるかどうか知りたいのですが。
質問をさらに具体的にするために、私が求めているのはtop
、Red-Hatシステムのコマンドの最初の行からの「平均負荷」がどのように解釈され、公式のドキュメントroコードによってこれを検証するかを理解することです。
[この主題にアプローチするには多くの方法があり、そのすべてが質問に対する許容可能な答えです]
潜在的なアプローチの1つは、この情報が公式に文書化されている場所を見つけることです。
もう1つは、top
私が取り組んでいる特定のディストリビューションとバージョンからビルドされたコードバージョンを見つけることです。
私が得ているコマンド出力は次のとおりです。
top - 13:08:34 up 1:19, 2 users, load average: 0.02, 0.00, 0.00
Tasks: 183 total, 1 running, 182 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 96.8%id, 2.7%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3922520k total, 788956k used, 3133564k free, 120720k buffers
Swap: 2097148k total, 0k used, 2097148k free, 344216k cached
この場合、負荷平均値をどのように解釈できますか?
あるドキュメントソースからの平均負荷がぎりぎりであり、別のドキュメントソースで100を乗算した後に解釈する必要があることを確認できました。
したがって、問題は
、0.02%と2%のどちらがロードされているかです。
ドキュメントのソースとバージョン:
1)最初の星は
TOP(1) Linux User’s Manual TOP(1)
NAME
top - display Linux tasks
出典:man top
私のRedHatディストリビュー
ションのUbuntuにも、「タスク」を備えたバージョンがあり、負荷平均を説明していません。http:
//manpages.ubuntu.com/manpages/precise/man1/top.1.html
2)2つ目は
TOP(1) User Commands TOP(1)
NAME top
top - display Linux processes
出典:http :
//man7.org/linux/man-pages/man1/top.1.htm
3)これは次で始まります:
TOP(1)
NAME
top - display and update information about the top cpu processes
出典:http://www.unixtop.org/man.shtml 最初の一つは、見ることができるでまたはであり、それは、出力形式のいずれかの説明がありません(も程度の負荷平均私が興味を持っています) 。第二 1は、負荷平均が最後の1分に関係していることを指摘し、簡単な説明が含まれていないが、その値の解釈については何も!
man top
RHEL
online ubuntu documentation
私は2番目の情報源から直接引用します:
2a。UPTIMEとLOADの平均
この部分は、
プログラムまたはウィンドウの名前を含む1行で構成されます。表示モードの
現在の時間と、最後のブートからの時間、最後の1、5、15分間の システム負荷平均の
合計
時間
したがって、この説明が本当に正しい場合は、負荷平均が最後の1分間であることを理解するだけで十分です。
ただし、数値の形式については説明していません。
では第三の説明、それはそれを言います:
負荷平均の数値を指定する場合は、100を掛ける必要があります。
この説明は、0.02が0.02%ではなく2%を意味することを示唆しています。しかし、これは正しいですか?さらに、それはLinuxのすべてのディストリビューションおよび潜在的に異なる実装に適切top
ですか?
この質問に対する答えを見つけるために、コードをオンラインで検索してコードを調べました。しかし、私は、top
RHEL に関連する少なくとも2つの異なるバージョンを見つけました!builtin-top.c
そしてリファクタリングtop.c
。どちらもRed-Hatが著作権を所有しており、コードの冒頭にある告知にあるとおり、RHELがこれらのいずれかを使用しているのは当然のようです。
http://lxr.free-electrons.com/source/tools/perf/builtin-top.c
http://lxr.free-electrons.com/source/tools/perf/util/top.c
それで、その多くのコードを掘り下げる前に、CPU負荷がどのように解釈されるかについて正確な理解を形成するためにどこに集中すべきかについての意見が必要でしたか?
以下の回答で与えられた情報からは、いくつかの個人の検索に加えて、私がいることを発見した:
1 - top
私が使用しているということは、パッケージのprocps-3.2.8に含まれています。を使用して確認できますtop -v
。
2- procps-3.2.8
公式Webサイトからダウンロードしたバージョンでは、ツールuptime
がprocfs
ファイルから/proc/loadavg
直接情報を取得しているようです(Linux関数を利用していませんgetloadavg()
)。
3- top
コマンドでは、関数も使用しませんgetloadavg()
。私は何とかtop
実際に同じことを確認することができましたuptime
負荷平均を表示するツール。実際にはuptime
、procfs
ファイルから情報を取得するツールの関数を呼び出します/proc/loadavg
。
だから、すべてが/proc/loadavg
ファイルを指しています!したがって、load average
によって生成されたものを正確に理解するにはtop
、カーネルコードを読み取って、ファイルのloadavg
記述方法を確認する必要があります。
また、回答の1つで指摘された優れた記事で、の3つの値についての素人の用語説明が提供されていますloadavg
。
したがって、すべての回答が等しく有用で役立つという事実にもかかわらず、私は記事http://www.linuxjournal.com//article/9001を指し示したものを私の質問への「the」回答としてマークするつもりです
。あなたの貢献に感謝します!
さらに、「トップと負荷平均を理解する」の質問から、loadavg
計算される場所を指すカーネルのソースコードへのリンクが見つかりました。動作方法を説明する巨大なコメントがあるように、コードのこの部分もにありますC
!
コードへのリンクはhttp://lxr.free-electrons.com/source/kernel/sched/loadavg.cです。
繰り返しますが、私はいかなる形の盗用にも従事しようとはしていません。完全性のためにこれを追加しています。したがって、カーネルコードへのリンクがトップと負荷平均の理解の答えの1つから見つかったことを繰り返します...
top -v
)