シナリオ: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はゲームにパッチを適用します。メモリメトリクスを再びチェックすると、チャートが正常に戻り、ガベージコレクションが再び効率的に動作しています。
さらに詳しく 🔗
AlwaysOn Profilingの詳細と使用開始方法は、Splunk APMのAlwaysOn Profilingの概要 を参照してください。
プロファイリングのフレームグラフの詳細は、フレームグラフを理解し、使用する を参照してください。
Splunk APMのその他のシナリオについては、Splunk APMを使用したエラーのトラブルシューティングとアプリケーションパフォーマンスの監視のシナリオ を参照してください。
ダッシュボードの詳細は、ダッシュボードの作成およびカスタマイズ を参照してください。