Docs » Splunk APMのAlwaysOn Profilingの概要 » Splunk AlwaysOn Profilingを使用したアプリケーションとサービスの監視シナリオ » シナリオ:SashaがAlwaysOn Profilingを使用してメモリ使用量を分析する

シナリオ:SashaがAlwaysOn Profilingを使用してメモリ使用量を分析する 🔗

Buttercup Gamesの開発者リーダーである Sashaは、Birdlympicsの新リリースに向けて作業しています。Sashaは、AlwaysOn Profilingのおかげで既にコードを最適化し、CPU消費の問題を解消することができました。シナリオ:SashaがAlwaysOn Profilingを使用してパフォーマンスの問題を検出する を参照してください。

このゲームの新バージョンを発売する前に、Sashaはメモリ使用量も分析することを決めました。これは、新しいレベルを導入した後に発覚していた問題です。チームのサイト信頼性エンジニアが、インフラストラクチャ全体でメモリ消費量が異様に増加していることに不満を漏らしていました。

いくつかの最適化に取り組みながら状況を改善するため、Sashaは、Birdlympicsがどこにメモリを割り当てているかを把握することにし、「Javaランタイムメトリクス」ダッシュボードを開きました。

メモリメトリクスの異常なパターンをチェックする 🔗

メモリ消費に関するいくつかのアラートを確認した後、Sashaは「Javaランタイムメトリクス」ダッシュボードを開きました。チャートを見ると、メモリ使用量が急激に増加し、使用可能なメモリが枯渇していることが確認できます:

メモリ使用量チャート

割り当て率も高くなっています:

割り当て率チャート

フレームグラフを参照して非効率なプロセスを特定する 🔗

メモリ消費量の増加の根本原因を見つけるため、SashaはAlwaysOn Profilingを開き、Memory を選択し、以下のフィルターを適用しました:

  • デモ環境で当該のビルドが実行された時間と一致するカスタム時間。

  • demo 環境と birdlympics サービス、ならびに特定のホスト

メモリのフレームグラフの前のチャートによって、ゲームがアクティブになっていた間、ガベージコレクションのために最大10%の時間休止しなければならず、ゲームがフリーズする原因となっていたことが確認できます:

ガベージコレクションアクティビティとアプリケーションアクティビティのチャート

Sashaはチャートを使って特定の期間を選択し、フレームグラフを調査します。フレームグラフは、選択した期間に発生したメモリの割り当てを示しています。フレームグラフのそれぞれのフレームは、同じ時間帯に各メソッドに割り当てられたメモリ量を示しています。

メソッドのメモリ使用量が多いことを示すスタックトレースの詳細情報

まとめ 🔗

Sashaは、Splunk Observability Cloudのダッシュボード、Splunk APM、AlwaysOn Profilingを組み合わせて使用することで、ゲーム内の重大なメモリ問題と、メモリを過剰に割り当てているコードを特定しました。

この情報をもとに、Sashaはゲームにパッチを適用します。メモリメトリクスを再びチェックすると、チャートが正常に戻り、ガベージコレクションが再び効率的に動作しています。

さらに詳しく 🔗

このページは 2023年05月26日 に最終更新されました。