3

Tomcat にデプロイされた Java アプリケーションに重大な問題があります。

  • OS: Debian 6.06 (カーネル 3.2.13-grsec-xxxx-grs-ipv6)
  • トムキャット: 6.0.35
  • JDK: 1.6.0_37-b06
  • JVM パラメータ: -Xms3584m -Xmx3584m -XX:MaxPermSize=256m -XX:ThreadStackSize=1024
  • スレッド数: 200

数時間使用した後、RSS (常駐メモリ サイズ) は 13 GB、VSZ (仮想メモリ サイズ) は 15 GB になりました。

アプリケーションには 2 つのサーブレットがあります。単純な HTTP リクエスト用の Spring DispatcherServlet と、Web サービスを処理するための CXFServlet です。アプリケーションには、カスタム ネイティブ コードはありません。

使用ヘッドは2GB前後なので問題ありません。

4 MB の応答を返す SOAP 要求は、500 MB の RSS の増加を生成します。ガベージ コレクタを実行しても、RSS には影響しません。

このメモリの増加の考えられる理由、または問題の調査に役立つツールをご存知ですか。ありがとう。

pmap 出力

マッピング: 14226976K 書き込み可能/プライベート: 13772580K 共有: 286844K

10 の最大の「anon」ブロック:

0000000720000000 3670016 rw--- 0000000000000000 000:00000   [ anon ]
0000000000601000 2529344 rw--- 0000000000000000 000:00000   [ anon ]
0000000710000000  173504 rw--- 0000000000000000 000:00000   [ anon ]
00007f7484000000  131072 rw--- 0000000000000000 000:00000   [ anon ]
00007f7414000000  131068 rw--- 0000000000000000 000:00000   [ anon ]
00007f7424000000  131068 rw--- 0000000000000000 000:00000   [ anon ]
00007f7434000000  131068 rw--- 0000000000000000 000:00000   [ anon ]
00007f7494000000  131068 rw--- 0000000000000000 000:00000   [ anon ]
00007f737c000000  131024 rw--- 0000000000000000 000:00000   [ anon ]
00007f738c000000  131024 rw--- 0000000000000000 000:00000   [ anon ]
4

2 に答える 2

0

問題は正確には何ですか?OSスワップですか?おそらく、この質問に対する受け入れられた回答を読む必要があるだけです: Linux での Java からの仮想メモリ使用量、メモリの使用量が多すぎます

NIO を使用している場合、ヒープ外のメモリ消費の原因になる可能性もあります。ここで説明する ように、ヒープなどのサイズが安定している場合でも、Sun JVM がこれまで以上に多くの RSS メモリを消費し続けるのはなぜですか?

于 2013-02-08T16:36:40.483 に答える
0

Java に含まれている分析ツールである JVisualVM を使用して、JVM 内で何が起こっているかをよく見ることができます。マニュアルはこちらからご覧いただけます。

JVisualVM

他にも優れたツールがありますが (JProfiler 7 が思い浮かびます)、通常はライセンス料がかかります。JProfiler の無料トライアルを試すことができます。

于 2013-02-08T16:16:43.380 に答える