現在、10人のユーザーを使用して機能テスト(約300リクエスト)を並行して実行しようとしていますgatling-plugin
mvn clean test-compile gatling:test -Dkarate.env=test
プロジェクトフォルダーで次.mvn/jvm.config
のローカルmavenオプションを使用します。
-d64 -Xmx4g -Xms1g -XshowSettings:vm -Djava.awt.headless=true
いくつかの大きな応答を並行して処理しているある時点で、ガトリング プロセスが中止されます。
[ERROR] Failed to execute goal io.gatling:gatling-maven-plugin:3.0.2:test (default-cli) on project np.rest-testing: Gatling failed.: Process exited with an error: -1 (Exit value: -1) -> [Help 1]
次のスタック トレースを使用します。
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid25960.hprof ...
Heap dump file created [1611661680 bytes in 18.184 secs]
Uncaught error from thread [GatlingSystem-scheduler-1]: Java heap space, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[GatlingSystem]
java.lang.OutOfMemoryError: Java heap space
at akka.actor.LightArrayRevolverScheduler$$anon$3.nextTick(LightArrayRevolverScheduler.scala:269)
at akka.actor.LightArrayRevolverScheduler$$anon$3.run(LightArrayRevolverScheduler.scala:235)
at java.lang.Thread.run(Thread.java:748)
-Xmx10g
さまざまな方法で、ヒープ領域を 10 GB ( ) に増やそうとしました。
- 環境プロパティ経由
MAVEN_OPTS=-Xmx10g
- ローカル プロジェクトの maven オプション経由
.mvn/jvm.config
- ここで
maven-surefire-plugin
提案されている構成を介して
maven プロセスの開始時にわかるように、maven プロセスには 10GB が割り当てられますが、
VM settings:
Min. Heap Size: 1.00G
Max. Heap Size: 10.00G
Ergonomics Machine Class: client
Using VM: Java HotSpot(TM) 64-Bit Server VM
ただし、各実行OutOfMemoryError
中には引き続きスローされます。gatling-plugin
各ヒープ ダンプを分析するeclipse memory analyzer
と、常に同じ結果が示されます。
84 instances of "com.intuit.karate.core.StepResult", loaded by "sun.misc.Launcher$AppClassLoader @ 0xc0000000" occupy 954 286 864 (90,44 %) bytes.
Biggest instances:
•com.intuit.karate.core.StepResult @ 0xfb93ced8 - 87 239 976 (8,27 %) bytes...
ヒープ スペースの使用量を減らして回避するにはどうすればよいOutOfMemoryError
ですか? 誰かが考えや経験を共有できますか?