Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

APMをインストールしただけで動かしてない?

Avatar for demuyan demuyan
December 21, 2025
69

 APMをインストールしただけで動かしてない?

Avatar for demuyan

demuyan

December 21, 2025
Tweet

Transcript

  1. 自己紹介 • 出村 成和(Demura Narikazu) • クラスメソッド ゲームソリューション部 こんな人です •

    ITエンジニア • インフラ・New Relic技術サポート・アプリ開発 etc… • 前職ではソーシャルゲーム(バックエンド)開 発してました • New Relic Trailblazer
  2. APMを入れたら「重く」なった!? • ある現場での悲劇: • APMをインストールした途端、本番環境のレ スポンスが悪化 • パフォーマンス調査のためのツールなのに CPUを食いつぶす •

    正確に計測できない… • 結論: • 諦めないで! カスタマイズで軽くできます! 今回はPHP Agentを例に解説(他言語も考え方 は同じ)
  3. 調整ポイント① セグメント上限 • 後から調査するために保存するデータの「量」を制限する • セグメントとは • 関数呼び出しなどの処理の最小単位 • 設定箇所:

    • newrelic.transaction_tracer.max_segments_web = 0 • Web: 通常は制限なし(0)でOK。1つの処理自体が長時間かかる場合は制限する • newrelic.transaction_tracer.max_segments_cli = 100000 • CLI: デフォルト(10万)でも重ければ、さらに減らす。
  4. 調整ポイント② SQL監視 • SQL監視の負荷を下げる • EXPLAIN(実行計画)の罠: • 遅いクエリ発見 → 調査用にもう一度似たクエリ

    を実行 • つまり2回走る = 重い! • 設定: • newrelic.transaction_tracer.explain_enabled = true • 対策: • 頻繁に重いクエリが走るシステムならOFFを検討
  5. 調整ポイント③ 収集詳細度 • トレースとは • 1つのリクエスト処理の開始から終了までの詳 細な追跡記録 • トレース詳細度: •

    newrelic.transaction_tracer.detail = 1 • デフォルト(1): すべて記録 • 最小限(0): 必要最小限 • 戦略: • 詳細に追いかけたい → 詳しく (1) • ざっくりな内容でも問題ない → 軽く (0)
  6. 実務でのステップ 1. APMをインストール、デフォルトで動かす 2. CPU負荷を確認(目安:5%まではOK、10% 超えなら対策) 3. ターゲットを絞る 1. DB負荷が高い?

    → SQL監視を制限 2. コード処理が重い? → セグメントを制限 問題ある箇所は詳しく、ない箇所は軽く
  7. もっと詳しく知りたい方へ • 公式ドキュメント “PHP agent overhead reduction tips” も読むとよい •

    技術同人誌 『New Relicに詳しい人達が書 いた本』 • 第1章『初期設定から一歩先へ、APMの詳細 設定ガイド』にはより詳細に書かれています • かってね!