午前中、何人かの友人はシステムにアクセスできなかったと言った、
以下は解決プロセスを記録します:
インターフェイスのテスト結果は次のとおりです
インターフェースが応答しない
最初にアプリケーションログを確認する
ログはtail -fによって追加されません。htopを使用して、システムの両方のコアが100%であることを確認し、アプリケーションによって占有されていることを確認します
Javaプログラムの占有状況の分析を引き継ぎました
合計から始めましょう:
サーバーのCPU使用率が非常に高く、100%に達しています位置付け方法
1: 再 印刷:http://www.linuxhot.com/java-cpu-used-high.html 1.jps JavaプロセスのPIDを取得します。 2.jstack pid >> java.txt CPU使用率が高いスレッドスタックをエクスポートします。 3.top -H -p PID対応するプロセスのどのスレッドがCPUを過度に占有しているかを確認します。 4.echo "obase = 16; PID" | bcスレッドのPIDを16進数、大文字から小文字に変換します。 5. 2番目のステップでエクスポートされたJava.txtで、16進数に変換されたスレッドのPIDを見つけます。対応するスレッドスタックを見つけます。 6.高負荷のスレッドスタックがどのビジネスオペレーションであるかを分析します。手順を最適化し、問題に対処します。 方法2: 1. topを使用してCPU 使用率が高いプロセスのPIDを見つけます Top Top ps aux | grep PIDコマンドを使用 します2.スレッド情報を取得してCPU 使用率が高いスレッドを見つけますPs -mp pid -o THREAD、tid、time rn 3.必要なスレッドIDを16進形式に変換します printf "%x \ n" tid 4.スレッドのスタック情報を出力します jstack pid | grep tid -A 30 方法3: 1.プロセスが高すぎる ps-を占めていることを確認しますef | grep mem- *プロセスのPIDを表示 top -Hp PIDプロセスの jstackを表示しますPID -l 21113スレッドのスタックを表示します
具体操作
jps JavaプロセスのPIDを取得します。
8783
jstack pid >> java.txtエクスポートCPU使用率の高いスレッドスタック
jstackを使用して、上記のjava pidのスレッドを出力します
スレッドスタック情報を出力する
異常なし???
ログに戻り、最後の100行を指定します
ログの書き込みが停止する前にログの書き込みエラーが報告されました。ログを書き込むことができませんでした。おそらくディスクの問題です。
案の定、いっぱい
占有者を確認し、内部を確認
スペースを消費するアプリケーションログを削除した後、/ a **のパーティションディスク容量が元に戻ったのに、ルートディレクトリが99%であることがわかりました。du-sh / *の結果から、/ tmpの方が多くなります。/tmp mountを参照してくださいポイントが/と同じパーティション上にあるかどうか:df -h / tmp結果は次のとおりです
/ tmpフォルダー内の一時ファイルをクリアした後
OK、アプリケーションを再起動します、通常
この大きな円は単なるディスクの問題であることがわかりましたアプリケーションログを見ると、ログが追加されないことがわかります。。。