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

推薦する

要素のフォーム要素の使用の概要

フォーム要素はたくさんあります。簡単にまとめると、次のようになります。私のやり方では、主にテキスト ...

ラベルとボタンを削除し、背景画像の点線/影を追加すると完璧な解決策になります

ユーザーが登録すると、ラベルをクリックして確認コードを変更します。クリックするとラベルに影の部分がで...

Linx awk入門チュートリアルの詳細な説明

Awk はテキスト ファイルを処理するためのアプリケーションであり、ほぼすべての Linux システ...

経験豊富な人が、プロフェッショナルで標準化されたMySQL起動スクリプトの開発方法を紹介します。

シェル スクリプト言語は、すべてのプログラミング言語の中で最も単純な言語であるため、資格のある Li...

自動ヘルスレポートを実現するDocker+Selenium方式

この記事では、ある大学の健康報告システムを例に、Web 側の自動化操作を完成させます。使用したテクノ...

Nginx でファイル ホットリンク保護サービスを構築する方法を学ぶ例

序文多くのサイトが、ポイントやゴールドコインなど、情報のダウンロードに料金を請求していることは誰もが...

MySQL のデッドロック チェックとデッドロック除去の例の詳細な説明

1. クエリプロセスプロセスリストを表示2. 対応するプロセスを照会し、IDを強制終了します。検証(...

Linuxでディスク使用量を確認する方法

1. dfコマンドを使用してディスク全体の使用量を表示します。 df コマンドは、ハードディスクのマ...

Mysql5.7 で JSON 操作関数を使用する手順

序文JSON は、言語に依存しないテキスト形式を使用する軽量のデータ交換形式で、XML に似ています...

Linux システムでデプロイメント プロジェクトを設定する方法

1. ファイアウォールの設定を変更し、対応するポートを開きますLinux システムのファイアウォール...

Nginx Rewrite の使用シナリオとコード例の詳細な説明

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

CentOS システムの rpm インストールと Nginx の設定

目次CentOS rpm のインストールと Nginx の設定導入rpm パッケージのインストールサ...

MySQL の主キーがクエリを高速化するために数値を使用するか UUID を使用するかについての簡単な分析

実際の開発では、MySQL の主キーは重複できず、主キーが自動的にインクリメントされることがあります...

スパンの最小高さを定義するソリューションは効果がありません

span タグは HTML ウェブページを作成するときによく使用されますが、このタグの使い方がよくわ...

Ubuntu での CUDA と CUDNN のインストールとアンインストールの実装

目次序文グラフィックドライバーをインストールするCUDAをアンインストールするCUDAをインストール...