topコマンドはどこでCPU使用率のすべてのデータを取得しますか?


7

topコマンドを実行すると、3行目が次のようになります。

Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.2%id, 0.1%wa, 0.0%hi, 0.0%si, 0.1%st

topコマンドはどこからこのデータを取得しますか?から取得し/procますか?はいの場合、正確な場所は何ですか?


1
はい、procfsを使用します。
ローマンニューザ

回答:


4

CPU使用率の正確な場所について質問しています。これは/proc/stat

$ head -n 3 /proc/stat
cpu  1751981 185577 398478 28868975 69445 32 27028 0 0 0
cpu0 954878 88888 186567 14433502 19750 0 600 0 0 0
cpu1 797103 96688 211911 14435473 49694 31 26428 0 0 0

この形式は、カーネルのドキュメント(filesystems/proc.txt)で説明されています。top略語を太字にしました:

最初の「cpu」行は、他のすべての「cpuN」行の数値を集約します。これらの数値は、CPUがさまざまな種類の作業の実行に費やした時間を識別します。時間単位はUSER_HZ(通常は100分の1秒)です。列の意味は、左から順に次のとおりです。

  • 私たち ER:ユーザモードで実行される通常のプロセス
  • ni ce:ユーザーモードで実行されるnicedプロセス
  • システム:カーネルモードで実行されるプロセス
  • id le:親指をいじる
  • io wa it:I / Oの完了を待っています
  • irq:割り込みサービス[ハード割り込みhi ]
  • softirq:softirqの処理[soft interrupt si ]
  • st eal:非自発的な待機
  • ゲスト:通常のゲストを実行しています
  • guest_nice:素敵なゲストを実行する

CPUに関する一般情報/proc/cpuinfoはから取得できますが、これはCPU使用率とは関係ありません。


0

Procfsはにあります/proc。これを読んでください:procfsの探索

Procfsは、/ procにマウントされたLinuxの仮想ファイルシステムであり、ユーザーランドのカーネル情報へのアクセスやデバッグのための複数の目的を果たします。Linuxを私にとって特別なものにしている機能の1つは、プロセス情報へのテキストストリームとしてのアクセスです。多くのLinuxコマンド(ps、top、pstreeなど)は、情報をこのファイルシステムに依存しています。

GNUパッケージに含まtopれるソースコードを調べることができcoreutilsます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.