Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【Ottertune】MLでDBを最適化するツールの紹介
Search
Hank Ehly
August 25, 2022
Technology
1
1.1k
【Ottertune】MLでDBを最適化するツールの紹介
Hank Ehly
August 25, 2022
Tweet
Share
More Decks by Hank Ehly
See All by Hank Ehly
Fivetranでデータ移動を自動化する
hankehly
0
580
Celeryの紹介と本番運用のTips
hankehly
0
830
ChatGPTを活用した 便利ツールの紹介
hankehly
1
1.3k
Efficient Energy Analytics with Airflow, Spark, and MLFlow
hankehly
0
320
Deferrable Operators入門
hankehly
0
630
【初心者/ハンズオン】Dockerコンテナの基礎知識
hankehly
0
510
Compositeパターン: オブジェクトの階層関係をエレガントに表現する方法
hankehly
0
310
10/29 Airflowの基礎を学ぶハンズオンワークショップ
hankehly
0
250
システム/データ品質保証のための Airflow 活用法
hankehly
0
590
Other Decks in Technology
See All in Technology
FastAPIの魔法をgRPC/Connect RPCへ
monotaro
PRO
1
700
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
3
250
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
3
290
PythonとLLMで挑む、 4コマ漫画の構造化データ化
esuji5
1
130
コンテキストエンジニアリングとは? 考え方と応用方法
findy_eventslides
4
880
Railsアプリケーション開発者のためのブックガイド
takahashim
14
6.1k
生成AIで「お客様の声」を ストーリーに変える 新潮流「Generative ETL」
ishikawa_satoru
1
290
"複雑なデータ処理 × 静的サイト" を両立させる、楽をするRails運用 / A low-effort Rails workflow that combines “Complex Data Processing × Static Sites”
hogelog
3
1.8k
LLMアプリケーション開発におけるセキュリティリスクと対策 / LLM Application Security
flatt_security
7
1.8k
タスクって今どうなってるの?3.14の新機能 asyncio ps と pstree でasyncioのデバッグを (PyCon JP 2025)
jrfk
1
250
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
5.4k
全てGoで作るP2P対戦ゲーム入門
ponyo877
3
1.3k
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Automating Front-end Workflow
addyosmani
1371
200k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
890
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Optimizing for Happiness
mojombo
379
70k
Why Our Code Smells
bkeepers
PRO
339
57k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
What's in a price? How to price your products and services
michaelherold
246
12k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Designing for Performance
lara
610
69k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Transcript
【Ottertune】MLでDBを最適化する ツールの紹介
自己紹介 • Hank Ehly (ハンク イーリー) • ENECHANGE株式会社 • qiita.com/hankehly
• github.com/hankehly • connpass.com/user/hankehly
アジェンダ 1. DBチューニングの問題点 2. OtterTuneとは 3. 営業とのQ&A
AWS RDSとは • マネージド PostgreSQL、MySQL、... • バージョン更新 / バックアップ等 自動化される
• デフォルトパラメータ • DBの使われ方に最適化されていない
DBチューニングの問題点 • RDBの費用を抑えて性能を最適化したいよね? (A) PostgreSQLの内部の専門的な知識 (B) 試行錯誤でパラメータ変更を繰り返し、最適化されるまで、パフォーマンスへの 影響を検証する時間 (私はどちらも持っていない) •
本来より高いクラウドコストを支払っていて、低いパフォーマンスしか出せていない
OtterTuneとは AWS の RDS と連携し、PostgreSQL と MySQL の設定項目を機械学習で最適化する SaaS プロダクト
1. 接続 • OtterTuneアカウント作成 • Agentをデプロイする 2. メトリック取得 • DB のハードウェア、パラメータ、メトリクス情報を 定期的に取得する • データやクエリーを見ない 3. 最適化 • ユーザーが設定した目標に向けて、 DB の設定を機械学習で最適化していく
①今この設定だよ ②多分これに変えたら パフォーマンス上がるよ ③どうする?
営業とのQ&A 1. どんな情報を取得するか • 数値、カウンター、レイテンシー情報 • PostgreSQL Statistics Collector •
CloudWatchメトリック(CPU使用率など) • クエリーの内容/スキーマは取得されません 2. RDSとどう接続するか • Agentをデプロイする(Fargate) • 公式 CloudFormation / Terraform
module "ottertune-iam" { source = "ottertune/ottertune-iam/aws" version = "0.0.6" external_id
= "***" } (Terraform)
営業とのQ&A 3. 設定変更によるダウンタイムはあるか • 設定変更によるダウンタイムは今まで発生したことがないそうです • 変更すると再起動が必要な設定はあるけど、事前に分かるもののみ 4. 日本語対応(ダッシュボード /
サポート等) ない 5. 設定変更は自動なのか、人がやるのか • どちらも対応している • 完全に自動化できる • 人間が変更内容を見てボタンクリックで適用することもできる(human in the loop と呼ぶ)
営業とのQ&A 6. 設定変更はどの頻度で行われるか • 調整できるけど、24時間に1回が推奨される • 大体20回目のイテレーションで、パフォーマンスチューニングがMAXに到達する
営業とのQ&A 7. どのくらいのパフォーマンス向上が期待できるか ワークロードによるけど、デフォルトの RDS 設定を使っている場合 5% 〜 15% は期待
できる
営業とのQ&A 8. PostgreSQL のバージョン変更したらどうなるか • 何もなかったように、新しいメトリック/設定項目を考慮範囲に含められるだけ • OtterTuneのサービスが途切れることはない 9. 設定変更によってパフォーマンスが下がったことはあるか?
• あるけど、最初の方だけで、ノイズに近い • 継続的な設定調整でパフォーマンスがだんだん悪くなることはない 10. でもお高いでしょ? • 1 db = $0 • 〜5 db = $450/月 • https://ottertune.com/pricing 11. 検証環境で学習させて本番環境に適用することは? • 環境によってワークロードが違うので、検証環境で学習させて、本番環境に変更を展開することはあまり意味がない
営業とのQ&A 12. どのDBがサポートされるか
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
ご清聴ありがとうございます