web-dev-qa-db-ja.com

LinuxのCPU使用率が100%を超えているのはなぜですか。

CPU使用率が100%を超えるのを見ました。これはどのように可能ですか?私は4つのCPUコアを持っているので、100%は本当に最大ではないのですか?

また、プログラムがこれを行うときに、kコマンドを使用する以外に他に何ができるのでしょうか。

59
tony_sid

私の知る限りでは、1コアの消費電力に対するCPU使用率を示しています。つまり、タスクのCPU使用率が200%の場合は、2つのコアを占有しています。

65
lajuette

トップのmanページから

   k: %CPU  --  CPU usage
  The task's share of the elapsed  CPU  time  since  the  last  screen
  update,  expressed as a percentage of total CPU time.  In a true SMP
  environment, if 'Irix mode' is Off, top will operate  in  number  of
  CPUs.  You toggle 'Irix/Solaris' modes with the 'I' interactive com-
  mand.

だから、はい、上はCPUパーセンテージPERコアを示していますが、 'I'を押すことでこの動作を切り替えることができます。

17
IanH

はい、上部のプロセスが100%を超えた場合、または上部の負荷が1.0を超えた場合は、複数のコアが占有されているか、システムがオーバーサブスクライブされています。オーバーサブスクリプションとは、物理的に管理可能な量よりも多くの作業をコアに追加することを意味します。

topでは、(使用されているメモリのように)さまざまなパラメータでビューをソートすることもできます。並べ替え可能なものを調べたい場合は、topのヘルプまたはマニュアルページを参照してください。

プロセスによって使用されている仮想メモリや常駐メモリ、スリープ状態または現在実行中の状態など、プロセス自体に関するすべての種類の情報や、使用されたCPU時間も確認できます。

必要に応じて、上部の平均負荷もuptimeコマンドで表示できます。

10
private_meta