3

現在、jenkins を使用してパフォーマンス フレームワークを作成し、Jenkins からパフォーマンス テストを実行する作業を行っています。https://github.com/jmeter-maven-plugin/jmeter-maven-pluginこのプラグインを使用しています。このパフォーマンス フレームワークでの単一ユーザーによるサニティ テストはうまく機能し、200 ユーザーの実際のパフォーマンス テストに進み、2 分以内にエラー java.lang.OutOfMemoryError: GC オーバーヘッド制限を超えました。jenkins.xml で次のことを試しました。

<arguments>-Xrs -Xmx2048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080 --prefix=/jenkins --webroot="%BASE%\war"</arguments>

しかし、それは機能せず、メモリを増やすたびにjenkinsサービスが停止し、メモリを1Gbに減らす必要があり、その後サービスが再起動することにも気付きました。

jmeter と Java のメモリも増やしましたが、助けにはなりませんでした。.jmx ファイル ビューの結果ツリーでは、他のすべてのリスナーが無効になっていますが、それでも問題は解決しません。

私は POC を行っているので、jenkins は私のラップトップでホストされており、高レベルの仕様は次のとおりです。羊

何か助けてください?

4

2 に答える 2

2

GC オーバーヘッドに関するエラーは、Jenkins がガベージ コレクションでスラッシングしていることを意味します。これはおそらく、有用な作業よりもガベージ コレクションに多くの時間を費やしていることを意味します。

この状況は通常、ヒープがアプリケーションに対して小さすぎる場合に発生します。最新の多世代ヒープ レイアウトでは、正確に何を変更する必要があるかを判断するのは困難です。

次のオプション「-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps」を使用して Verbose GC を有効にすることをお勧めします。

次に、こちらのアドバイスに従ってください: http://www.oracle.com/technetwork/articles/javase/gcportal-136937.html

于 2017-01-05T16:44:02.377 に答える
0

いくつかの注意点

  1. jmeter テストを実行するために、統合された maven ゴールを使用しています。これにより、jmeter テストを起動するコンテナとして Jenkins が使用されるため、作業だけでなく、jenkins の他のユーザーにも影響を与えます。
  2. 独自の JVM をパラメーター付きで使用してテストを起動する専用の jmeter マシンのような別のクライアント マシンに実行を延期することをお勧めします (または、提供したものを使用します)。

要約すると、 1. テスト実行を jenkins の外に移動します 2. レポートの出力をパフォーマンス プラグインへの入力として提供します [8 のような耐久性テスト結果を処理するときに、より多くの JVM メモリが必要になるため、これもクラッシュする可能性があります時間結果ファイル]

このようにして、テストのスケーリングの可能性が高くなります。また、使用しているスクリプト エンジンの種類についても言及していません。Jmeter のドキュメントによると、groovy を使用する JSR223 にはメモリ リークがあります。http://jmeter.apache.org/usermanual/component_reference.html#JSR223_Samplerを参照してください 。

-Dgroovy.use.classvalue=true を追加してみて、それが役立つかどうかを確認してください (groovy を使用している場合)。Java 8 を使用している場合、jmeter のすべてのスクリプトに対して一意のクラスを作成し、JVM の外部にあるメタ スペースを増やしている可能性が高くなります。その場合、メタスペースを制限し、クラスのアンロードと 64 ビット JVM のようなものを使用します。

-d64 -XX:+CMSClassUnloadingEnabled。

また、あなたの新世代のサイズは?-XX:NewSize=1024m -XX:MaxNewSize=1024m ? jmeter はすべてのファイルを永続的にロードし、古い世代に直接移動するため、新しい世代に使用できるスペースが縮小されることに注意してください。

于 2017-01-05T18:48:24.580 に答える