Linux で CPU 使用率が高くなる原因をトラブルシューティングするプロセスの詳細な説明

Linux で CPU 使用率が高くなる原因をトラブルシューティングするプロセスの詳細な説明

序文

CPU 使用率が高くなるのは、オンラインでよくある問題です。この対処法がわからないと、本当にがっかりします。

ここに画像の説明を挿入

心配しないで、兄弟、コンボを教えてあげるよ。

始める

プロジェクトから始めましょう。API 全体で、/cpu/{count} をリクエストすると、CPU を手動で増やすことができます。賢いゴーストですね~

    @GetMapping("/cpu/{count}")
    パブリック長いcpuTest(@PathVariable("count")長いcount) {
        長い数値 = 0;
        (int i = 0; i < count; i++) の場合 {
            数値++;
        }
        戻り番号;
    }

パックしてアップロードして開始

ここに画像の説明を挿入

実行中です。プロセス番号14849 を覚えておいてください。

まず、通常の状況での CPU 使用率を見てみましょう。

ここに画像の説明を挿入

とてもリーズナブル

オンラインCPUサージをシミュレートする

/cpu/{100000000000} インターフェースに CPU 使用率を上げるよう要求し、top を使用して CPU 使用率を監視します。

ここに画像の説明を挿入

98%まで直接作業します、非常に良い

では、始めましょう。現在、オンラインで問題が発生しています。CPU の使用率が常に非常に高くなっています。上司から、原因を突き止めてサポートを開始するように依頼されました。

実際、CPU を発生したのは誰かはわかっていますが、詳細が十分ではありません。どのプロジェクトに問題があるかを知るだけでは十分ではありません。上司が彼を専門家と呼ぶことができるように、犯人、どのメソッド、何行が問題を引き起こしたかを見つける必要があります。

ステップ

jps+topはアプリケーションプロセスを検索します

pidtop -Hp {pid} スレッドtidを見つける

tid を 16 進数に変換 printf "%x\n" {tid}

スタック情報を印刷する jstack

欲しいものをフィルタリングする

トラブルシューティング

プロセス ID は14849であると判別されました。次のステップは、問題の原因となっているスレッドを見つけることです。

トップ -Hp 14849

ここに画像の説明を挿入

明らかにこの14908がやったことだ。

16進数に変換

ここに画像の説明を挿入

印刷スタック

ここに画像の説明を挿入

スタック トレースを見ると、問題は TestController の 20 行目にあることがわかります。コード検証に進みましょう。

ここに画像の説明を挿入

大きな問題ではない

事件を解決する

花を散らす

Linux での CPU 速度が速い場合の詳細なトラブルシューティング プロセスに関するこの記事はこれで終わりです。Linux での CPU 速度が速い場合のトラブルシューティングに関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • LinuxのCPU負荷とCPU使用率の詳細な説明
  • Linux システムでの CPU 使用率が高い場合のトラブルシューティングのアイデアと解決策

<<:  CSS3は光る境界線効果を実現します

>>:  HTML における Div と table の違い (あらゆる側面から詳細に説明)

推薦する

Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法

1. 原因公式の cerbot は面倒すぎます。野生の成長よりもさらに悪い acme.sh の使用は...

適応幅(パーセンテージ)に応じて Div の高さを調整する純粋な CSS

今日のレスポンシブ レイアウトの要件では、サイズを自動的に調整できる多くの要素で高さと幅の適応を実現...

Linux xargsコマンドの使用

1. 機能: xargs は、stdin 内のスペースまたは改行で区切られたデータをスペースで区切ら...

jQuery はシャッター効果を実現します (li 配置を使用)

この記事では、ブラインド効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具体...

CSSブレンドモードとSVGを使用して、製品画像の色を動的に変更します。

数日前、Codepen で @Kyle Wetton が書いた、CSS ブレンディング モードと S...

Linux C++ マルチスレッド同期の非常に詳細な説明

目次1. ミューテックス1. ミューテックスの初期化2. ミューテックスロックの関連特性と分類3. ...

Linux で圧縮ファイルの内容を表示する 10 の方法 (要約)

一般的に、アーカイブされたファイルや圧縮されたファイルの内容を表示するには、まず解凍してから表示する...

EDMをHTMLで記述する際の注意点まとめ(メール送信時の一般的な注意点)

フォーマットエンコーディング1. ページの幅は600~800px、長さは1024px以内に設定してく...

Javascriptを使用して滑らかな曲線を生成する方法

目次序文ベジェ曲線の紹介二次ベジェ曲線3次ベジェ曲線ベジェ曲線計算機能フィッティングアルゴリズム付録...

HTML の div、td、p およびその他のコンテナーでの強制改行と非改行の実装

1. 改行を強制せず、省略記号で終了します。コードをコピーコードは次のとおりです。 <div ...

Django+Mysql+Redis+Gunicorn+NginxのDockerデプロイメントの実装

I. はじめにDockerテクノロジーは現在非常に人気があります。コンテナを介してプロジェクト環境を...

MySQL ストアド プロシージャの作成と呼び出しの詳細な説明

目次序文ストアドプロシージャ: 1. ストアドプロシージャの作成と呼び出し1. ストアドプロシージャ...

画像比較を実現するjQueryプラグイン

この記事の例では、画像比較を実現するためのjQueryプラグインの具体的なコードを参考までに共有して...