web-dev-qa-db-ja.com

Linuxのhtopで何が表示されますか?

これがこの質問に適しているかどうかはわかりませんが、とにかく質問して、どこに到達するかを確認します。

Centosでノードプロセスを実行しています。htopを実行すると、関連しているように見えるプロセスがたくさん表示されますが、方法がわかりません。誰かが説明してくれることを期待しています:-/

このスクリーンショットを見てください..。

enter image description here

実行している「realtime-event-manager」プロセスは1つだけですが、複数あります。これが進行中の基礎となるマルチスレッドの表現であることは理解していますが、私が理解していないのは、CPUMEM、およびRESの値がすべてである理由です。等しい?私は実際にここで何を見ていますか?

また、上部のCPU使用率バーにも注目してください。私はそれらが90-100%に急上昇するのをよく見ますが、目立った減速はありません...これは本当の表現ですか、それともhtopにリストされているアイテムの合計ですか?

1
An0nC0d3r

実行している「realtime-event-manager」プロセスは1つだけですが、複数あります。

Linuxでは、スレッドは LWPs --Light-Weight Processes として実装されます。これは、スレッドIDとプロセスIDが実際には同じプールから割り当てられることを意味します。良い情報については、この回答を参照してください: PIDとTIDの違い

を押すと、ネスト/ツリービューを切り替えることができます F5

さらに、を押すと、ユーザースペーススレッドを表示/非表示にできます ShiftH、またはセットアップメニュー経由- F2

htop setup - thread visibility

カスタムスレッド名を表示する」オプションを有効にすることも有益です。

あなたが見ているこれらの "processes"は、おそらく実際には "threads"です-これはツリービューで、または「スレッドを別の色で表示する」オプションが有効になっています。


上部のCPU使用率バー。私はしばしばそれらが90-100%に急上昇するのを見ますが、目立った減速はありません

* nixの世界では、100%は「1つのコアの100%」を意味します...「利用可能なすべての処理の100%」を意味するわけではありません時間」はWindowsの場合と同じです。

さらに、「目立った減速なし」は非常に興味深く主観的なポイントです。

カーネルの preemption 、スケジューラー、および優先順位に応じて、システムを調整および最適化して、次のことを行うことができます。

  • "realtime" "soft realtime" スケジューリングの試み...(注:Linuxリアルタイムカーネルではありません)
  • "interactive"-プロセスをより簡単にプリエンプト(中断)して、より応答性の高いシステムの外観を提供します
  • "batch"-ユーザーを待たせることを犠牲にして、大規模なジョブをより効率的に完了しようとして、中断を保留します。

最近のほとんどのユーザー向けシステムは、ますます多くのサーバーと同様に、インタラクティブなスケジューリング用に最適化されています。

さらに、「bigger」/「better」プロセッサ(例:i7/Xeon)は、高レベルでの応答性がはるかに優れていることを確認しました「小さい」プロセッサよりも負荷が大きい(例:Atom/i3)...これを完全に説明することはできませんが、原因である可能性がありますスレッド数、キャッシュサイズなどに..

1
Attie