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

【Ottertune】MLでDBを最適化するツールの紹介

Hank Ehly
August 25, 2022

 【Ottertune】MLでDBを最適化するツールの紹介

Hank Ehly

August 25, 2022
Tweet

More Decks by Hank Ehly

Other Decks in Technology

Transcript

  1. AWS RDSとは • マネージド PostgreSQL、MySQL、... • バージョン更新 / バックアップ等 自動化される

    • デフォルトパラメータ • DBの使われ方に最適化されていない
  2. OtterTuneとは AWS の RDS と連携し、PostgreSQL と MySQL の設定項目を機械学習で最適化する SaaS プロダクト

    1. 接続 • OtterTuneアカウント作成 • Agentをデプロイする 2. メトリック取得 • DB のハードウェア、パラメータ、メトリクス情報を 定期的に取得する • データやクエリーを見ない 3. 最適化 • ユーザーが設定した目標に向けて、 DB の設定を機械学習で最適化していく
  3. 営業とのQ&A 1. どんな情報を取得するか • 数値、カウンター、レイテンシー情報 • PostgreSQL Statistics Collector •

    CloudWatchメトリック(CPU使用率など) • クエリーの内容/スキーマは取得されません 2. RDSとどう接続するか • Agentをデプロイする(Fargate) • 公式 CloudFormation / Terraform
  4. 営業とのQ&A 3. 設定変更によるダウンタイムはあるか • 設定変更によるダウンタイムは今まで発生したことがないそうです • 変更すると再起動が必要な設定はあるけど、事前に分かるもののみ 4. 日本語対応(ダッシュボード /

    サポート等) ない 5. 設定変更は自動なのか、人がやるのか • どちらも対応している • 完全に自動化できる • 人間が変更内容を見てボタンクリックで適用することもできる(human in the loop と呼ぶ)
  5. 営業とのQ&A 8. PostgreSQL のバージョン変更したらどうなるか • 何もなかったように、新しいメトリック/設定項目を考慮範囲に含められるだけ • OtterTuneのサービスが途切れることはない 9. 設定変更によってパフォーマンスが下がったことはあるか?

    • あるけど、最初の方だけで、ノイズに近い • 継続的な設定調整でパフォーマンスがだんだん悪くなることはない 10. でもお高いでしょ? • 1 db = $0 • 〜5 db = $450/月 • https://ottertune.com/pricing 11. 検証環境で学習させて本番環境に適用することは? • 環境によってワークロードが違うので、検証環境で学習させて、本番環境に変更を展開することはあまり意味がない
  6. 13. どのパラメータを調整するか • autovacuum_vacuum_cost_delay • autovacuum_vacuum_cost_limit • autovacuum_vacuum_scale_factor • autovacuum_vacuum_threshold

    • bgwriter_delay • bgwriter_lru_maxpages • bgwriter_lru_multiplier • checkpoint_completion_target • 等々 営業とのQ&A