Linux の「top」コマンドが、1 つの CPU だけで異なる CPU 使用率の値を表示するのはなぜですか?

Linux の「top」コマンドが、1 つの CPU だけで異なる CPU 使用率の値を表示するのはなぜですか?

なぜ「top」コマンドは、CPU が 1 つしかない Linux サーバーに対して 2 つの異なる値を表示するのでしょうか。マルチコア プロセッサがある場合は異なる可能性があることは理解していますが、この場合は CPU が 1 つしかない AWS LightSail $5 インスタンスを使用しています512 MB RAM, 1 vCPU, 20 GB SSD

ここに画像の説明を入力してください

Amazon コンソールでは、CPU 使用率が 10% を超えていないことが示されていますが、アプリケーションはダウンしています。使用率を確認すると、使用率がほぼ 100% であることがわかりました。

なぜこのようなことが起こるのでしょうか? VM 使用率のパーセンテージを測定するにはどの値を考慮すべきでしょうか?

答え1

ライン内 %Cpu(s)CPU 使用率をカテゴリに分割します。

       us, user    : time running un-niced user processes
       sy, system  : time running kernel processes
       ni, nice    : time running niced user processes
       id, idle    : time spent in the kernel idle handler
       wa, IO-wait : time waiting for I/O completion
       hi : time spent servicing hardware interrupts
       si : time spent servicing software interrupts
       st : time stolen from this vm by the hypervisor

使用されている CPU は、これらすべての値を合計したものになります。つまり、この場合は次のようになります。

7.3 + 0.0 + 0.0 + 4.3 + 0.0 + 0.0 + 88.3 =99,9

Amazon LightSailでは、この他の回答で説明されているように「LightSail では、vCPU のパワーを常にすべて使用できるわけではないため、上限が設けられています。」

私の意見では、それはそれほど明白ではなく、CPUの合計値があるはずですしかし残念ながら、そうではありません。

「htop」という別のプログラム(サーバーにインストール)を使用することもできます。このプログラムでは、たとえばコアごとの CPU の合計使用率など、よりわかりやすい情報が表示されます。

次のようになります:

ここに画像の説明を入力してください

答え2

スクリーンショットの 3 行目の最後を見ると、CPU 時間の 88.3% がホスト マシンによって「盗まれている」ことがわかります。これは、アプリケーションが短時間のアクティビティよりも多くの CPU 時間を使用していることが原因である可能性があります。LightSail では、vCPU のパワーを常にすべて使用することは許可されないため、上限が設けられています。アプリケーションは、残りの 94.4% を使用しています。

上位解釈のソース:https://linuxaria.com/howto/understanding-the-top-command-on-li LightSail リソースの使用状況のソース:よくある質問

関連情報