症状加工ラインのCPU負荷が高すぎます

どのように断層線の現象CPU100%に対処します

プロセスフロー:

1.ログインオンライン・マシン上のコマンドは、CPUのかかるプロセスIDを確認するために、例えば、その永続的なリソース集約的なプロセスを見つけ24008


2.top -HP 24008 CPUを消費(高い示すように、例えば、現在はない)進行中のスレッド番号24230を表示します

3.printf「%X \ n」24230スレッド番号が16進数に変換され、変換の5ea6

スレッドスタックから3997の印刷を処理するため4.jstack 24008> jstack.txt jmapの使用ツール


検索76e5 5. jstack.txtは、このスタック情報は、CPUのスレッドを消費し続ける参照して、分析することができます

 

注:jmapのスレッドスタックは、スレッドの数は、CPUの周波数を占有観察を継続する必要があるので、いくつかのケースでは、数が正確であると逮捕され、より頻繁にスレッド切り替えではなく、良い把握する場合を現時点を印刷することができます。

他の

いくつかの時間は、ログスタック解析が完了した後、彼らは最高占有CPUのGCスレッドことがわかりました。この時点で、どのようにそれを行うには?

GCの停止実行の初期セットアップメモリが小さすぎると、それはメモリの問題があることを示し、JVMはそうではありません、手順は、この現象は、最近突然の出現、この時のオンライン分析である場合には、頻繁に、ラージオブジェクトの振る舞いを作成する基本的に登場していますコードとタスクの実行や外部のシステムコールの原因のタイミングは、より効果的であろう。分析が出てこない場合、あなたは、JVM jmapは統計の下で、目標占有率を見て、オブジェクトを使用する必要があります。
注:このコマンドは、プログラム仮死ので、注意して本番環境を引き起こす可能性が!

jmapの-histo 3997> jmap2018.txt

オブジェクトが大きすぎるか、あまりにも多く表示され、その後、コードを解析してはならないの分析を、行うには、JVMの下のオブジェクトの数によると。

おすすめ

転載: www.cnblogs.com/pypua/p/11954000.html