こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Webアプリのメモリリーク

Webアプリをjavaで開発しておりTomcat7を使用しています。
Windowsタスクマネージャーで tomcat7.exe のプロセスが使用するメモリを監視していたところ
tomcat起動時には80Mほどの使用量なのですがWebアプリを使っているうちに150Mほどに
上昇します。
その後、使用し続けてもほとんど上昇しないのですがログアウトしてもメモリ使用量が150Mほど
のままで変化がありません。
これはメモリリークしているのでしょうか。ログアウト時にはセッションはinvalidate()メソッドにて
無効化しています。
ログアウトすると初期の80Mほどにメモリ使用量が変化すると思っていたのですが
まだ何かオブジェクトへの参照が残っているということでしょうか。30分ほど放っておけば
ガーベッジコレクションされるのかと思ったのですがメモリ使用量が変わらなかったので
ガーベッジコレクションされてるわけでもなさそうです

投稿日時 - 2013-08-28 22:31:42

QNo.8240004

すぐに回答ほしいです

質問者が選んだベストアンサー

>その後、使用し続けてもほとんど上昇しないのですがログアウトしてもメモリ使用量が150Mほどのままで変化がありません。

それで正常な動作です。
javavmの実装にもよるのかもしれませんが、一度OSから確保したメモリはjavavm自身が終了するまでOSに返すことはしません。

>30分ほど放っておけばガーベッジコレクションされるのかと思ったのですがメモリ使用量が変わらなかったのでガーベッジコレクションされてるわけでもなさそうです

なのでGCが行われたところでjavavmのメモリ使用量が減るわけではありません。
GCの様子はvisualvmなどで見ることができます。

投稿日時 - 2013-08-29 01:05:36

補足

ご回答ありがとうございます。
早速visualvmを試してみたところTomcatをモニタリング
できました。
起動したところTomcatに接続するのに認証ダイアログみたいなの
が出たのですがID/PASSにroot/rootを設定したらTomcat
に接続できました。このID/PASSはTomcatのどこで設定して
いるのでしょうか。

投稿日時 - 2013-08-30 01:36:07

お礼

どうもありがとうございました。

投稿日時 - 2013-09-03 06:59:58

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>このID/PASSはTomcatのどこで設定しているのでしょうか。

申し訳ありませんがtomcat固有の事はわかりません。

この辺を調べてみてください。
http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html

投稿日時 - 2013-08-31 01:31:07

補足

ご回答ありがとうございます。
調べてみたいと思います。

投稿日時 - 2013-09-03 06:59:12

あなたにオススメの質問