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 の違い (あらゆる側面から詳細に説明)

推薦する

Linux で MySQL 8.0 サービスを完全に削除する方法

この記事を読む前に、Linuxコマンド、特にcentos7.3環境でyumを使用してインストールされ...

Vue ルーティング遅延読み込みの詳細

目次1. ルートの遅延読み込みとは何ですか? 2. ルートの遅延読み込みの使用1. ルートの遅延読み...

Dockerコンテナを使用する簡単な例

目次1. イメージをプルする2. イメージを実行する3. コンテナ内でアプリケーションをテストする4...

CentOS7にNginxをインストールして自動起動を設定する方法

1.公式サイトからインストールパッケージをダウンロードするhttp://nginx.org/en/d...

HTML/CSS におけるフロートの使用例の詳細

1. floatの基本的な使用例1. まず 2 つの div ボックスを作成し、高さ、幅、背景色を設...

jQueryは画像の強調表示を実現します

ページ上の画像を強調表示することは非常に一般的です。ここでは、jQuery を使用して画像を強調表示...

MySQL における in と exists の使い方と違いの紹介

まずコードを書いて (int i=0;i<1000;i++){ (int j=0;j<5...

角度コンテンツ投影の詳細な説明

目次単一コンテンツ投影マルチコンテンツ投影単一条件のコンテンツ投影アプリ-人物-htmlアプリ担当者...

PCとモバイルの適応の問題に対する迅速な解決策

Web ページを作成する場合、通常、コンピューターの画面サイズと携帯電話の画面サイズの違いなどの問題...

ubuntu18.04 での qt5.12.8 のインストールと環境設定に関する詳細なチュートリアル

環境システム: Ubuntu 18.04ソフトウェア: qt5.12.8 1. インストールパッケー...

Alibaba Cloud CentOS 7 に yum を使用して MySQL をインストールする正しい方法 (推奨)

yum クイックインストール mysql yumリポジトリを追加する rpm -Uvh http:...

MySQL 5.6.37 (zip) ダウンロード インストール 構成 グラフィック チュートリアル

この記事では、MySQL 5.6.37のダウンロード、インストール、設定のチュートリアルを参考までに...

MySQLとSpringの自動コミットの詳細な説明

1 MySQLの自動コミット設定MySQL はデフォルトで自動的にコミットします。つまり、各 DML...

MySQL COUNT関数の使用と最適化

目次COUNT 関数は何をするのですか? MyISAMの「魔法」シンプルなCOUNT最適化近似値を使...

Win7 x64 に解凍版の mysql 5.7.18 winx64 をインストールするとサービスが起動できない問題を解決します

今日、mysql の公式サイトから mysql-5.7.18-winx64.zip をダウンロードし...