Skip to main content

Protect使用時のJavaエージェントで想定されるパフォーマンス

パフォーマンスへの影響を理解する手掛かりとなるよう、サンプルのJavaアプリケーションを使用して内部テストを実施し、情報を収集しました。実際のパフォーマンス数値は、他のいくつかの要因によって異なる場合があることに注意してください。

CPU使用率

  • Javaエージェントは通常、CPUリソースの5〜15%を使用します。

  • この範囲は、エージェントでProtectモードが有効になっている場合に発生する追加のCPU負荷の概算です。

  • アプリケーションの複雑さ、発生する負荷、およびその他の環境要因によって、影響は異なる場合があります。

メモリ使用量

  • Javaエージェントには通常、200〜300MBの追加メモリが必要です。

  • このメモリ使用量は、エージェントの操作と関連するデータ構造を考慮したものです。

  • 実際のメモリへの影響は、アプリケーションのサイズと複雑さ、処理される同時リクエスト数などによって異なる可能性があります。

レイテンシ

  • JavaエージェントでProtectモードを有効にすると、リクエストの処理中に追加のレイテンシ(遅延時間)が発生する可能性があります。

  • Protectの解析で観測されたリクエストの99%は、100µs(マイクロ秒) 〜 5ms(ミリ秒)です。

  • 具体的な影響は、アプリケーションの負荷、同時実行ユーザ数、リクエストの内容などのさまざまな要因によって異なります。

  • 通常発生する遅延は最小限ですが、特定のアプリケーションの性質により異なる可能性があるという点に注意してください。これらのパフォーマンス数値は、Javaエージェントがアプリケーションに与える影響を最初に理解する際に参考にするための基準となります。ただし、実際のパフォーマンスへの影響は、お使いの環境やアプリケーションの固有の要素によって異なる可能性があることを強調しておきます。典型的なワークロードや現実的なシナリオを使用して、パフォーマンステストを実施し、アプリケーションのパフォーマンスへの影響を適切に測定することを推奨します。本番環境に近い条件をシミュレートすることで、設定を調整していき、セキュリティとパフォーマンスのトレードオフを評価することができます。弊社では、Javaエージェントの性能の向上と、アプリケーションのパフォーマンスに与える影響の最適化に継続して取り組んでいます。皆様からのフィードバックを大切にしておりますので、パフォーマンスに関する意見や懸念事項などがあれば、ぜひご連絡ください。Javaエージェントのパフォーマンスに関するサポートや追加情報が必要な場合は、お気軽に弊社サポートまでお問い合わせください。最適なパフォーマンスレベルを維持しながら、アプリケーションのセキュリティと安定性を確保できるようサポートします。

次のグラフは、Contrastエージェントを使用している実際の顧客のホストアプリケーションのリクエスト処理時間をまとめたものです。Javaのパフォーマンスへの影響を示す24時間のサンプルを示しています。

grafana1.png
  • 上の行は全体のリクエスト処理時間を示しており、HTTPリクエストのかなりの部分、つまりリクエストの約93%(10億6000万ヒット)が10ミリ秒から50ミリ秒の範囲内にあることを示しています。さらに、5ミリ秒から10ミリ秒の処理時間で、9,810万ヒットが発生し、残りの処理時間は、正規分布に従っていることが分かります。

  • 下の行には、Protect時間を表示しています。これは、Protect RASP製品が各リクエストを解析するのに要した時間を示しています。特に、全リクエストのうち、8億件が1ミリ秒から5ミリ秒の時間枠内で解析されており、レイテンシへの影響がごくわずかであることを示しています。同様に、さらに3億4,400万リクエストが、0.5〜1ミリ秒というさらに短い時間枠内で解析されており、レイテンシへの影響が最小限であることを示しています。エージェントを組み込んだホストアプリケーションに対するリクエスト処理時間の分布により、異なる時間範囲に分類されたリクエスト数を確認できます。同時にProtectによってもたらされるパフォーマンスへの影響についても把握できます。

  • ガベージコレクションやその他のJVM要素は、実行を一時停止する可能性がありタイミングに影響することがあります。