SOA 向けの HTTP/2 テストの最適化

HTTP/2 テストは、多くの CPU リソースとメモリー・リソースを必要とします。 リソースが十分にないコンピューターを使用して、HTTP/2 テストに負荷をかけると、テストが失敗する場合があります。 HTTP/2 テストを実行するコンピューターの構成または調整が必要な場合があります。

CPU 使用量

HTTP/2 テストが、実行に十分な CPU リソースを確保できるようにしてください。 コンピューターで他のプロセスが実行されていて、それが必須ではない場合、停止することが考えられます。 例えば、次の図のCPU使用量統計は、コンピューター上の他のプロセス(赤色で示されている)が多くのリソースを消費しているのに対し、テスト実行プロセス(緑色で示されている)はより少ないリソースを消費していることを示しています。
CPU使用量

メモリー使用量とガーベッジ・コレクション

テストの実行に十分なメモリーを使用できるようにしてください。 ガーベッジ・コレクターを構成してメモリー・ヒープ・サイズを調整することができます。

ガーベッジ・コレクション - ガーベッジ・コレクターが大量の一時メモリーを割り振らないように、以下の値を使用することを検討してください。 こうすることで、ガーベッジ・コレクターに割り振られるスレッドの数が、コンピューターの処理能力に応じて調整されます。 スケジュールのロケーション資産ごとに、値を適用します。
RPT_VMARGS

-XX:MaxGCPauseMillis=250 -XX:ParallelGCThreads=6 -XX:ConcGCThreads=3 -XX:GCTimeRatio=19


ガーベッジ・コレクションの Java 引数
メモリー・ヒープ - メモリー・ヒープに以下の値を使用することを検討してください。
RPT_VMARGS
-Xms11024m
RPT_DEFAULT_MEMORY
22412m

メモリー・ヒープ

スレッド使用量

開始時には、少ない数の仮想テスターを使用してテストに負荷をかけ、段階的に作業負荷を増やすようにしてください。 このようにすることで、作業負荷、つまり秒あたりの呼び出し数による変化の観察に役立ちます。 グラフでは、秒あたりの呼び出し数が平たんなときは、コンピューターの最大処理能力に到達していて、仮想テスターを追加する必要がないことを示しています。

プラットフォームのチューニング

次の 2 つのリンク先に従って、システムの TCP/ソケットの機能を構成します。

https://www.eclipse.org/jetty/documentation/jetty-9/index.html#high-load

https://www.microsoft.com/en-us/download/details.aspx?id=56495