Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データベースの負荷を紐解く/untangle-the-database-load

emi
February 28, 2025

 データベースの負荷を紐解く/untangle-the-database-load

2025/3/1(土) JAWS DAYS 2025
Lv.100
DevelopersIO流!アマゾンの奥地で技術の限界に挑戦:LT7人衆、熱き戦い
Track:C

13:10 ~ 13:50
https://jawsdays2025.jaws-ug.jp/sessions/C-6

#jawsdays2025 #jawsug #jawsdays2025_c

emi

February 28, 2025
Tweet

More Decks by emi

Other Decks in Technology

Transcript

  1. データベースのセッションのステータスは二つ • Active(アクティブ)セッション ◦ クエリ実行中 ▪ CPU を使用してクエリを実行している ▪ 他の処理が終わるのを待っている(待機

    wait) • Idle(アイドル)セッション ◦ 接続だけして待機している(クエリを実行していない) データベースの負荷を紐解く ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c
  2. データベースのセッションのステータスは二つ • Active(アクティブ)セッション ◦ クエリ実行中 ▪ CPU を使用してクエリを実行している ▪ 他の処理が終わるのを待っている(待機

    wait) • Idle(アイドル)セッション ◦ 接続だけして待機している(クエリを実行していない) データベースの負荷を紐解く ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c
  3. データベースのセッションのステータスは二つ • Active(アクティブ)セッション ◦ クエリ実行中 ▪ CPU を使用してクエリを実行している ▪ 他の処理が終わるのを待っている

    • Idle(アイドル)セッション ◦ 接続だけして待機している(クエリを実行していない) データベースの負荷を紐解く ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c CPU を掴んでいるのに 他の処理を待たされていて 実質 CPU が使われていない 非効率で勿体ない
  4. パフォーマンス管理のための指標 • アクティブセッション ◦ CPU を使用してクエリを実行している(On CPU) ◦ 他の処理が終わるのを待っている(Waiting) •

    データベースロード(DBLoad) ◦ 1 秒ごとのアクティブセッションの数を時系列で見るメトリクス ◦ ≒1 秒間の平均アクティブセッション Average Active Sessions(AAS) データベースの負荷を紐解く ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c
  5. RDS Performance Insights ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c RDS Performance Insights は

    RDS の性能が出ない場合や エラーの原因を調査する際に大活躍するイチオシのサービス
  6. RDS Performance Insights ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c DB セッションの状態を 1 秒に

    1 回サンプリングし 時系列に並べて状況を可視化 …… データベースの 待機イベント(Wait Events)の種類 • I/O(入出力)関連の待機 • ロック関連の待機 • IPC(プロセス間通信)関連の待機 • CPU 使用 • 最大 vCPU
  7. RDS Performance Insights ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c パフォーマンスの問題の有無は Average Active Sessions(AAS)

    (≒ DBLoad)が DB インスタンスの最大 CPU サイズ (8vCPU とか、16vCPU とか)を超えているかどうかで判断できる ……
  8. RDS Performance Insights ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c データベースに起因するお問い合わせ RDS の負荷が高く処理が遅い。 リードレプリカを導入したが、

    効果が見られない パフォーマンス悪化の原因が本当に読み取り負荷なのか、 どういった処理が遅いのか等を詳細に調査する必要がある • CPU 負荷が高い • ロックの多発による待機 • 不要なフルスキャン • 適切なインデックスが設定されていない • JOIN の最適化不足 etc…