どのように断層線の現象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の下のオブジェクトの数によると。