[mayaa-user:544] Mayaaの使用メモリについて

soga takayuki [E-MAIL ADDRESS DELETED]
2007年 8月 11日 (土) 21:33:28 JST


Mayaa開発者の皆様へ。

はじめまして。曽我といいます。
初めてMLに投稿させて頂きました。

早速ですが、mayaaについて御相談させてください。
現在担当しているプロジェクトにて、Mayaa + MayaaWebwork + webworkを使用しているのですが
最近ロングランテストをしていると、GC/FullGCが発生してもメモリーが開放されずに
不要な情報が溜まって行き、最終的にOutOfMemoryが発生して落ちてしまう現象に悩まされています。

当初は、フレームワーク以外の部分(自分が作った部分に)メモリリークする
箇所が含まれていると睨んで調査を行っていたのですが、hprofやjconsoleで
メモリ上から開放されないデータがどこなのかを調査して行くと
hprofでダンプしたログを見る限り、どうもorg.seaser.mayaa.*関連の情報が開放されずに残っているようです。

その為、検証用に非常に簡単なサンプルを作成しJMeterを使って
確認用に作成したサンプルに1000回程アクセスしつつ
JconsoleでJVMのメモリ使用を観察していったのですが
現象としては同じで、少しづつですが非ヒープ領域にメモリが溜まって行って開放されていない様子です。
確認に用いたWEBアプリのwarとsourceコード、hprofの結果、jconsoleのグラフを
以下のURLへアップロードしましたので、お手数で誠に申し訳ありませんが
一度確認してみては頂けませんでしょうか?その後

「こういう風にすれば回避出来る」
「そもそもMayaaの使い方を間違えている」
「設定ファイルにこういう設定をしては駄目」

等、何かしらのアドバイスを頂けると非常に嬉しいです。

http://postfile.jp/download.php?id=a3a0cfdfab1ac5f696b5ac91b2a66602
パスワード:2vbze4sy

※ファイルサイズは約18MBです。

#***********************************************************
# 開発環境
#***********************************************************
OS: WindoesXP Professional SP2 (開発時)
CPU: AMD 1.8GHz
メモリー:2GB
Mayaaの設定:
pageSerialize=true以外はデフォルト
JDK: jdk 1.5.0_11
サーブレットコンテナ: tomcat 5.5.17
指定しているJVMオプション:
確認用サンプル動作時 => -Xms128m -Xmx128m -XX:MaxPermSize=128m
現在開発しているシステムの動作時 => -Xms256m -Xmx256m -XX:MaxPermSize=128m
-----------------------------------------------------------
OS: Redhat Linux 9 (運用時)
JDK: 開発環境と同じ
サーブレットコンテナ: 開発環境と同じ
指定しているJVMオプション: -Xms768m -Xmx768m -XX:MaxPermSize=128m
-----------------------------------------------------------

また、以下の事を試してはみたのですが、ことごとく駄目でした。

・使用しているJdkのバージョンが悪いのでは?
=> JDK1.5.xの他バージョンをいくつかと、jrockit-R27.3.0-jdk1.5.0_11を試すが現象変わらず。

・pageSerialize=trueにしてキャッシュ機能を使ってると発生するのでは?
=> falseにしても現象変わらず
・最新版(1.1.12)では発生しないのでは?
=> 現象変わらず。また過去バージョンを1個づつ遡って使用してみましたが
1.1.2(1.1.12ではなく1.1.2です)でpageSerialize=falseだとjconsoleで見ている限り
非ヒープ領域に溜まらずにGCによって開放されている様でした。

最後になりましたが、Mayaaでデザイナーとプログラマの作業を分担する事が出来て
VelocityやJSP等に比べて、デザイン変更時の対応が相当ラクになって助かっております。
現在はSeasar2に比べて紙媒体での纏まった情報が少ないので、ちょっと凝った事をする際に
情報を集めるのが比較的大変なのですが、非常に将来性のあるプロダクトだと感じております。
もしも今後機能が拡張されて行くとすれば<m:if>以外に<m:else>があると
個人的には嬉しいところです。

以上です。
それでは何卒、アドバイス等よろしくお願い致します。

長文失礼しました。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/mayaa-user/attachments/20070811/77b2f900/attachment-0001.html 


mayaa-user メーリングリストの案内