Unixの「top」コマンドのCPU値と混同される


11

以下のスクリーンショットでは、CPU全体が3%と報告されていますが、mysqldプロセスは57%を使用していると報告されています。これは全体の3%の57%であるため、mysqldはCPUの約1.5%しか使用していませんか?

トップスクリーンショットhttp://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

更新:以下のコメンターが「1」キーを押して結果を投稿するよう要求しました: 1キーhttp://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

回答:


11

57.6%は、mysqldが1 CPUの.576を使用していることを意味します。この不一致は、システム全体のデータ収集とプロセスごとのデータ収集の競合状態である可能性があります。

編集:アップデートに基づいて、16コアがあるように見えます。

57.5% => .575/16 = .036 = 3.6%.

それがあなたの3%の源です。

すべてのアイドル率を合計して1600%から差し引くと、約57.5%になります。


3

topが実行されているときに数字の1を押して、何が起こるかを確認してください

編集:

不明氏はそれをよく言っています。

topは「1つのCPUコアがあれば、57.5%がビジーになる」と言っています。

ただし、コアは16個あります。したがって、この57の番号は、mysqldがマルチスレッドであり、すべてが...

ちょっとわかりにくい。しかし、これはtopが各コアの情報を表示するのが難しいためだと思います... 16以上のコアを持つトップ情報行を想像してください!

また、すべての「%us」CPU時間を合計した場合

1.7+1.0+2.3+1.0+7.4+11.1+15.1+8.7 = 48.3
48.3/16 = 3.01875

これは、3%の数字の由来です...


完了; 更新された質問を参照してください。
テフロンテッド

1

誰もがお勧めhtopですか?以前の回答が既に持っているよりもこの特定の質問に役立つというわけではありませんが、htop誰かがまだ使用しているのを見るたびに言及する義務がありtopます!


0

あなたのトップがあなたが持っている複数のCPUをマージしているかどうかはわかりませんが、それでもそれはあまり意味がありません。

何が起こっているのかといえば、topはすべてのプロセスの値と合計CPU使用率を同時に取得できないということです。プロセス情報が読み取られてからグローバルが読み取られるまでに、mysqlが大量のCPUを使用して停止または開始した場合があります。単純な競合状態である可能性があります。

もちろん、これはあなたが気付くのに十分な長さでなければならなかったので、これはトップのどこかまたはカーネルのアカウンティングの奇妙なバグであると推測しています。


0

us:ユーザースペース-カーネル上で実行しているものsy:システムコール-カーネル内で実行しているものni:レニックスプロセスid:アイドルwa:i / oを待機中hi:ハードウェア割り込み-ハードウェアの処理に費やした時間si:ソフトウェア割り込み-ソフトウェア作成の割り込み(システムコールなど)の処理に費やされる時間

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