タグ

ブックマーク / zenn.dev/socialplus (2)

  • Datadog Continuous Profiler を用いて、ボトルネックが Ruby の GVL であることを発見した

    Datadog Continuous Profiler を用いて、ボトルネックが Ruby の GVL であることを発見した こんにちは、terandard です。 弊社では Datadog を用いてアプリケーションやサーバーの監視を行っています。 以前からリクエストがスパイクした際にアプリケーション全体が遅延する問題があったので、Datadog Continuous Profiler を使用して調査したことについて紹介します。 背景 リクエストがスパイクするとアプリケーション全体が遅延する問題がありました。 リクエスト全体のリクエスト数とレイテンシー 特に処理に時間がかかっていたリクエストについて Datadog APM で状況を確認すると、下図のように空白期間があったり mysql2 や faraday の実行時間が長いことがわかりました。 例1: 謎の空白期間がある 例2: mysq

    Datadog Continuous Profiler を用いて、ボトルネックが Ruby の GVL であることを発見した
    Watson
    Watson 2024/07/31
  • Ruby3.2 + Rails 7.0 で YJIT 有効化によるパフォーマンスについて

    はじめに こんにちは、terandard です。 昨年(2023)のクリスマスに Ruby 3.3.0 のリリースがありました。 リリースノートには「YJIT の大幅なパフォーマンス改善」とあるので、今年の RubyKaigi でも YJIT についての講演があるのかな?とワクワクしております。 弊社のサービスは昨年まで Ruby 3.1 だったため、年始に Ruby 3.2 にアップデートしました。 YJIT も有効化したので、YJIT 有効化前後のパフォーマンス比較について共有します。 YJIT 有効化前後のパフォーマンス確認 リリース前後の1週間のパフォーマンスを比較しました。 グラフに関しては「点線: リリース前」「実線: リリース後」となっています。 リクエスト数 Avg 2.34k → 2.36k 時間ごとのリクエスト数の差はほとんどありませんでした。 従って以降の各指標は Y

    Ruby3.2 + Rails 7.0 で YJIT 有効化によるパフォーマンスについて
  • 1