0

アプリケーション全体が台無しになっています。最初のログが混同されました。アプリケーションは一定の間隔ごとにフリーズしているようで、1分ごとに約30分フリーズしているようです。タスクの大部分を実行する通常のスレッドが失われているようで、それらの痕跡はありません。これらはすべて、ロギング。ユーザーの報告によると、ソケットがハングアップしたようです。

まだほとんど手がかりがなく、何がこれらすべてを引き起こしたのか。CPU使用率の記録には、その時点ですべてが正常に表示されます。私が推測しなければならないので、あなたは私の心から逃げる出発点または特定のインスタンスを指摘できますか?私はこれらすべての混乱の考えられる理由を解読することができます。

ありがとう、マウィア

4

2 に答える 2

2

限られたメモリの仮想ボックスでGCを非常に集中的に使用するJavaアプリケーションを実行しているときに、このような動作を経験しました。ゲストOSには十分な「物理」メモリがなかったため、スワップメモリ​​を使用しました。ただし、スワップは、ホストOSの物理ディスクにマップされた「仮想」ディスク上にありました。

ゲストOSで実行されているJavaGCが動作を開始すると、ホストOSの物理ディスクに実際に配置されていたヒープからガベージを削除する必要がありました。

私はあなたの状況が同じであるとは言いたくありませんが、おそらくそれは似ています。したがって、物理メモリの量、GCの実行頻度、およびクリアしようとしているメモリの量を確認してください。JVMに1GBを割り当てました。十分な物理メモリがありますか?おそらく、JVMヒープは実際にはOSスワップメモリ​​、つまりディスクにありますか?

アプリケーションを調査してみてください。巨大なメモリを割り当てて、頻繁にクリーンアップする可能性はありますか?キャッシュなどは使えますか?perm genによって使用されているメモリの量と、短命のオブジェクトによって使用されているメモリの量を確認してください。

于 2012-04-17T17:41:50.447 に答える
1

サンプル ベースの監視ツールを使用してプログラムに接続し、スレッドと JVM サブシステムが何をしているかを確認してみませんか? JVisualVMには JDK が同梱されており、簡単に使用できます。

于 2012-04-17T16:54:22.433 に答える