Flowpartのテストロジックにてエラー「Java heap space」

105 views
Skip to first unread message

田中修

unread,
May 10, 2013, 4:35:29 AM5/10/13
to us...@asakusafw.com
度々お騒がせしております。

田中修です。

Flowpartのテストロジックを実行すると「Java heap space」のエラーとなってしまいます。
MavenのOPTIONパラメーターには下記を追加しているのですが
「-XX:+UseConcMarkSweepGC
-XX:SurvivorRatio=16
-XX:NewRatio=16
-XX:MaxTenuringThreshold=32
-XX:MaxPermSize=256m
-Xmn256M
-Xmx2048M
-Xms512M
-Xss1024k」


AsakusaFrameworkのテスト実行時に
JavaHeapSpaceをコントロールしたほうがよい環境がありましたら
お知らせいただけると幸いです。

テスト環境はLinuxのJinrikishaでテスト稼動しています。


以上。よろしくお願いいたします。

KAWAGUCHI, Akira

unread,
May 13, 2013, 4:38:51 AM5/13/13
to us...@asakusafw.com
かわぐちです。

> AsakusaFrameworkのテスト実行時に
> JavaHeapSpaceをコントロールしたほうがよい環境がありましたら

テストドライバを使ったテスト実行時には
hadoopコマンド経由でHadoopのプロセスが実行されますが、
このプロセスに対して指定するJavaのヒープサイズは
Maven側の設定ではなくHadoop側の設定が必要です。

スタックトレースを確認していないので
今回の状況に当てはまるかわかりませんが、
こちらを確認するとよいかもしれません。

ちなみに、先日リリースされた Jinrikisha 0.5.0 では
Aapche Hadoop 1.1.2 が同梱されていますが、
このHadoopが使用するJavaオプションのデフォルト値は
Jinrikisha インストールディレクトリ直下の .rikisha_profile の中で
環境変数 HADOOP_CLIENT_OPTS として指定しています。

それ以前のバージョンの Jinrikisha では、
Hadoop側のJavaオプションのデフォルト値は
Jinrikisha側からは指定していません。


2013年5月10日金曜日 17時35分29秒 UTC+9 田中修:

田中修

unread,
May 13, 2013, 8:11:44 PM5/13/13
to us...@asakusafw.com
かわぐち様

田中修です。

ヒープサイズの変更は、hadoopの$HADOOP_HOME/conf/hadoop-env.shを修正
環境変数のコメントアウトを取り消す。
export HADOOP_HEAPSIZE=2000
とやっており、4000まで増やして実行確認していますがヒープエラーが解消されることはありませんでした。
テストにて利用している環境の実メモリが不足している場合はエラーメッセージも変わってくると思っているのですが
JavaHeapSpaceから変わっておりません。

そこでお聞きしたいのですが、Asakusa Frameworkを正常に動作させるマシンスペックはどれくらいが推奨なのでしょうか?
大規模ロジックを走らせた場合に利用されるメモリ量をお知らせいただけると幸いです。
現在、テストにて利用しているマシンスペックは16GBメモリ。Tomcatが2台走っているため10GB利用中です。
空き実メモリは6GB残さてれいる環境となります。

Jinrikishaについてはバージョンアップしてみたいと思います。
その際の注意事項はございますか?
ディレクトリを削除してからがよいでしょうか?


以上。よろしくお願いいたします。

2013年5月13日月曜日 17時38分51秒 UTC+9 KAWAGUCHI, Akira:

KAWAGUCHI, Akira

unread,
May 14, 2013, 10:05:18 AM5/14/13
to us...@asakusafw.com
かわぐちです。

> export HADOOP_HEAPSIZE=2000

Jinrikishaでセットアップした環境をそのまま
(Hadoopをスタンドアロンモードで) 使用している場合、
Hadoopのデーモンプロセスに対する設定である
HADOOP_HEAPSIZE はAsakusaのテストドライバ経由での
Hadoop実行には影響しないと思います。
このあたりを確認してみるとよいかもしれません。

またそのほかに考えられそうな点として、
Hadoop側ではなくテストドライバ側が問題である場合は
maven-surefire-pluginが起動するテスト実行用の
Javaプロセスに対する設定が必要かもしれません。

> Asakusa Frameworkを正常に動作させるマシンスペックはどれくらいが推奨なのでしょうか

開発環境自体は1GB程度で動作します。
あとはアプリケーションやテストデータの内容次第だと思います。

> Jinrikishaについてはバージョンアップしてみたいと思います。
> その際の注意事項はございますか?

古いJinrikishaをアンインストールする場合は
以下が参考になります。


2013年5月14日火曜日 9時11分44秒 UTC+9 田中修:

田中修

unread,
May 14, 2013, 9:25:41 PM5/14/13
to us...@asakusafw.com
かわぐち様

情報提供ありがとうございます。
maven-surefire-pluginにJavaHeapSpaceの設定を追加しましたが
事象が改善されることはありませんでした。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${plugin.surefire.version}</version>
<configuration>
<argLine>-ea -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=16 -XX:NewRatio=16 -XX:MaxTenuringThreshold=32 -XX:MaxPermSize=256m -Xmn256m -Xmx1024m -Xms512m -Xss1024k</argLine>
<includes>
<include>**/*Test.java</include>
</includes>
<forkMode>once</forkMode>
</configuration>
</plugin>


ありがとうございます。

2013年5月14日火曜日 23時05分18秒 UTC+9 KAWAGUCHI, Akira:

田中修

unread,
May 14, 2013, 10:18:36 PM5/14/13
to us...@asakusafw.com
かわぐち様

度々お騒がせしております。
田中修です。

メモリをMAX3GBに変更したところ、JavaHeapSpaceが改善されました。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${plugin.surefire.version}</version>
<configuration>
<argLine>-ea -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=16 -XX:NewRatio=16 -XX:MaxTenuringThreshold=32 -XX:MaxPermSize=256m -Xmn256m -Xmx3072m -Xms512m -Xss1024k</argLine>
<includes>
<include>**/*Test.java</include>
</includes>
<forkMode>once</forkMode>
</configuration>
</plugin>


情報提供ありがとうございます。


2013年5月15日水曜日 10時25分41秒 UTC+9 田中修:
Reply all
Reply to author
Forward
0 new messages