Linuxの「top」コマンド:sy、ni、id、wa、hi、si、st(CPU使用率)は何ですか?


195

topLinuxで発行すると、次のような結果が得られます。

トップのスクリーンショット

行の1つには、次のように表されるCPU使用率情報があります。

Cpu(s): 87.3%us,  1.2%sy,  0.0%ni, 27.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

私はそれらのそれぞれの定義を知っていますが(はるか下)、これらのタスクの正確な意味を理解していません。

  • hi -ハードウェア割り込みの処理はどういう意味ですか?
  • si -ソフトウェア割り込みの処理はどういう意味ですか?
  • st -彼らは、「ハイパーバイザーが別のプロセッサ(または)仮想マシンから盗まれたCPU時間の割合を処理している間の、仮想CPUによる非自発的待機のCPU時間」だと言います。

しかし、実際にはどういう意味ですか?誰かがもっと明確にできますか?

私はすべてのリストされたussyniそれは同じを探して他の人を助けることができるので、などを。この情報はマニュアルページにはありません。

us: user cpu time (or) % CPU time spent in user space
sy: system cpu time (or) % CPU time spent in kernel space
ni: user nice cpu time (or) % CPU time spent on low priority processes
id: idle cpu time (or) % CPU time spent idle
wa: io wait cpu time (or) % CPU time spent in wait (on disk)
hi: hardware irq (or) % CPU time spent servicing/handling hardware interrupts
si: software irq (or) % CPU time spent servicing/handling software interrupts
st: steal time - - % CPU time in involuntary wait by virtual cpu while hypervisor is servicing another processor (or) % CPU time stolen from a virtual machine

回答:


92

hiハードウェア割り込みの処理に費やした時間です。ハードウェア割り込みは、CPUに何かを通知する必要がある場合(データが到着した場合など)に、ハードウェアデバイス(ネットワークカード、キーボードコントローラー、外部タイマー、ハードウェアセンサーなど)によって生成されます。

これらは非常に頻繁に発生する可能性があり、実行中は現在のCPUを本質的にブロックするため、カーネルハードウェア割り込みハンドラーは、できるだけ速く簡単に作成されます。

長時間または複雑な処理を行う必要がある場合、これらのタスクはメカニズム呼び出しを使用して延期されますsoftirqs。これらは個別にスケジュールされ、任意のCPUで実行でき、同時に実行することもできます(ハードウェア割り込みハンドラーには当てはまりません)。

現在のCPUをブロックするハードIRQに関する部分、およびsoftirqsどこでも実行できることに関する部分は正確ではなく、制限があり、一部のハードIRQは他の割り込みを妨げる可能性があります。

例として、ネットワークカードからの「データ受信」ハードウェア割り込みは、「カードethXのサービスが必要」という情報をどこかに保存し、aをスケジュールできsoftirqます。これsoftirqが実際のパケットルーティングをトリガーします。

siこれらで費やされた時間を表しsoftirqsます。

softirqメカニズムについての良い読み物(少し歴史もあります)は、Matthew Wilcoxの後でやる:Softirqs、Tasklets、Bottom Halfves、Task Queues、Work Queues and Timers(PDF、64k)です。

st、「スチールタイム」は、仮想化環境にのみ関連します。現在の仮想マシンが実際のCPUを利用できなかった時間を表します。ハイパーバイザーによって(別のVMを実行するため、または独自のニーズのために)そのVMから「盗まれた」。

IBM のCPUタイムアカウンティングドキュメントには、仮想化環境でのスチールタイムとCPUアカウンティングに関する詳細情報があります。(zSeriesタイプのハードウェアを対象としていますが、一般的な考え方はほとんどのプラットフォームで同じです。)


非常に明確な。したがって、新しいサウンドシステム、ヘッドセットなど(ハードウェアを接続する場合)を接続すると、ハードウェアの割り込みも発生します。
its_me

2
はい、それはあなたのサウンドチップセットが「何かが起こった」ことを知らせる方法かもしれません。ただし、ヘッドセットの接続は、サウンドチップ自体によって完全に処理される場合があり(たとえば、メインからヘッドフォンへのサウンド出力の再ルーティング)、メインCPUへの割り込みを生成しない場合があります。ただし、キーボードのキーを入力すると、割り込みが生成されます(USBキーボードがある場合はUSBハブデバイスから)。cat /proc/interruptsman procそのファイルについてはdocのman)も参照してください。
マット

15
  • us-ユーザー空間で費やした時間
  • sy-カーネル空間で費やした時間
  • ni-nicedユーザープロセスの実行に費やした時間(ユーザー定義の優先順位)
  • id-アイドル操作に費やされた時間
  • wa-IO周辺機器(ディスクなど)での待機時間
  • hi-ハードウェア割り込みルーチンの処理に費やした時間。(周辺ユニットがCPUからの注意を必要とするときはいつでも、文字通りラインを引いて、CPUにサービスを提供するように信号を送ります)
  • si-ソフトウェア割り込みルーチンの処理に費やした時間。(コードの一部、割り込みルーチンを呼び出します...)
  • st-ハイパーバイザーが別のプロセッサー(仮想マシンから盗まれた)にサービスを提供している間に、仮想CPUによる非自発的な待機に費やされた時間

2

「st」値は、AWSのT2.micro EC2インスタンスを使用して簡単に説明できます。

AWSドキュメントでは、VCPUごとに10%のベースラインパフォーマンスしか得られないことを読むことができます。つまり、CPU時間を大量に消費するプロセスがある場合、VCPUの10%しか使用できないため、「st」値は約90のままになります。他の値の合計は約10のままです。

そのため、AWSはハイパーバイザーを使用して、一定量の計算能力へのアクセスのみを許可しています。低層タイプのインスタンスのみを使用しているため、意図的に速度が低下します。

これにより、物事が少しわかりやすくなることを願っています。

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