SlideShare a Scribd company logo
1 of 31
Download to read offline
Update 2010/7/21
Amazon RDSを参考にした
とりまチューニング
2016/08/19 関⻄地区PostgreSQL勉強会
株式会社ロックオン 三原俊介
1
Update 2010/7/21
⾃⼰紹介
2
2012.04 株式会社ロックオン⼊社
インフラユニット
現在 マーケティングPF 開発部
主にインフラ全般、開発環境の改善、
ロックオフの管理⼈などなどやってます
三原 俊介– Shunsuke Mihara
⾃⼰紹介3
始める前のアンケート4
質問: みなさんDBのチューニング経験はありますか
1. PostgreSQLを使ったことがある⽅
2. PostgreSQLのチューニングをしたことがある⽅
3. MySQLを使ったことがある⽅
4. MySQLのチューニングをしたことがある⽅
今回のテーマ5
DBの初期構築時に
最低限調整しておきたいパラメータ
⽬次
1.チューニングの必要性 と とりまチューニング
2.Amazon RDS
3.PostgreSQLのとりまチューニング
4.(おまけ) MySQLのとりまチューニング
Update 2010/7/21
チューニングの必要性 と とりまチューニング
6
チューニングの必要性7
そもそもDBの構築直後(実装フェイズ前)に
チューニングは必要ない
1. 性能改善は欲を出せばキリがない
達成するべき⽬標値が決まった上で、どうやれ
ば達成できるかボトルネックを考慮して実施
2. 基準となるDBのアクセス傾向が必要
とりまチューニング8
とはいえ、 DBのデフォルト値から
とりあえず、まあ変更した⽅が良い値はあります
なぜデフォルトが最適な初期値になっていないのか
1. 最低限のスペックで動作させるための値
2. 安全側に倒した値
3. 1,2の項⽬と連動させないと意味が無い値
では、何を基準としてとりまチューニングを⾏うか
Update 2010/7/21
Amazon RDS
9
AWSのRDBサービス Amazon RDS10
Amazon RDSのデフォルト値を
とりまチューニングの参考にします
1. デフォルトでチューニング済みの設定で起動
2. RDSのスペックに合わせて動的に設定
3. 世の中で広く使われているDB設定
[注意] RDSのデフォルトパラメータは、Linuxの
DB専⽤サーバを想定したパラメータ WEBとの同居や
Windowサーバ
だと適切ではな
い場合がある
とりまチューニング項⽬の調査観点11
「スペックに連動する値」と
「DBデフォルトの値との差分」に着⽬
スペックの違うRDS2台を⽐較
→ どの値はスペックに合わせて変更するべきか
RDSとオンプレにインストールしたDBを⽐較
→ どの値はスペックに関わらず変更するべきか
とりまチューニング項⽬の調査⽅法12
DB3台を⽤意し、パラメータを⽐較
1. インスタンスタイプ(スペック)の違うRDSを2
台起動
2. オンプレに同バージョンのDBをインストール
3. DBに⼊り設定値を取得
A) PostgreSQLならば「SHOW ALL;」
B) MySQLならば「SHOW VARIABLES;」
13 ⽐較表を作成して確認
Update 2010/7/21
PostgreSQLのとりまチューニング
14
RDSのPostgreSQL 9.5.2 設定15
スペックと連動する値 4項⽬
DBデフォルト値と差分がある値 53項⽬
全パラメータ238項⽬中
1.スペックと連動する値
shared_buffers, effective_cache_size, max_connections, wal_buffers
2.DBデフォルト値と差分がある値
※53項⽬は多いので以下に絞ってご紹介
autovacuum系, チェックポイント系, 多⾔語対応系
shared_buffers16
shared_buffersはサーバメモリの1/4
■shared_buffersとは
データベースサーバが使⽤する共有メモリバッファ
のために使⽤するメモリ量
公式ドキュメント
にも25%(1/4)が
良いよと書いて
ある
effective_cache_size17
effective_cache_sizeはサーバメモリの1/2
■effective_cache_sizeとは
プランナーがインデックススキャンかシーケンシャ
ルスキャンかの判断に利⽤する参考値
PostgreSQL	wiki
にも全メモリの
1/2が保守的な
設定と記載
max_connectionsとwal_buffers18
max_connectionsはサーバメモリ128KB毎1増加
wal_buffersはデフォルト設定で⾃動調整
■max_connectionsとは
DBへの同時コネクション数の最⼤
■wal_bufferとは
トランザクションログを書き出すバッファ
デフォルトの⾃動設定でshared_buffersの1/32
autovacuum系19
analyzeとvacuumが頻度良く発⽣するように
トリガーとなる値を半分に調整
■ autovacuum_naptime 60 → 30
autovacuumを起動する間隔を秒単位で指定
■ autovacuum_analyze_scale_factor 0.1 → 0.05
ANALYZEを起動するトリガとなる更新⾏数の割合
■ autovacuum_vacuum_scale_factor 0.2 → 0.1
VACUUMを起動するトリガとなる更新⾏数の割合
チェックポイント系20
チェックポイントの書き出し処理を分散し、
負荷を減らすように調整(リカバリ時間は増加)
■ チェックポイントとは
PostgreSQLの共有バッファとディスク間の整合性
を取る処理
Update	○
Insert	△
・・・・
同期
(チェックポイント)
チェックポイント系21
チェックポイントの書き出し処理を分散し、
負荷を減らすように調整(リカバリ時間は増加)
■ checkpoint_completion_target 0.5 → 0.9
チェックポイントの書き出し処理が、この値の割合に
なるように調整されて、チェックポイントが実⾏
■ max_wal_size 1GB → 2GB
■ min_wal_size 80MB → 256MB
※9.5でcheckpoint_segmentsの代わりに導⼊
多⾔語対応系22
マルチバイト⽂字を扱いやすいように設定
■ lc_collate C → en_US.UTF-8
■ lc_ctype C → en_US.UTF-8
DB作成時の多⾔語対応のベースになる値
※ DB作成後変更できない値のためハマりやすい
⽇本での利⽤の場合、とりま「jp_JP.UTF-8」で
PostgreSQLのとりまチューニング まとめ23
RDSでデフォルトでチューニングされているもの
1. shared_buffersはサーバメモリの1/4
2. effective_cache_sizeはサーバメモリの1/2
3. max_connectionsはサーバメモリ128kB毎1増加
4. wal_buffersはデフォルト設定で⾃動調整
5. autovacuumはトリガーとなる値を半分に調整
6. チェックポイントの書き出し処理を分散
7. マルチバイト⽂字を扱いやすいように設定
Update 2010/7/21
(おまけ)MySQLのとりまチューニング
24
RDSのMySQL 5.6.27 設定25
スペックと連動する値 5項⽬
DBデフォルトとの値の差分 83項⽬
全パラメータ455項⽬中
1. スペックと連動する値
innodb_buffer_pool_size, max_connections,
back_log, host_cache_size, thread_cache_size
2. デフォルトとの差分
※今回は省略
innodb_buffer_pool_size26
innodb_buffer_pool_sizeはサーバメモリの3/4
■ innodb_buffer_pool_sizeとは
InnoDBのバッファープールのサイズ
公式ドキュメント
には、特に良い
値について言及
は無し
max_connections27
max_connectionsはサーバメモリ1.5MB毎1増加
■max_connectionsとは
DBへの同時コネクション数の最⼤
(PostgreSQL の 128KB毎より⼤きい)
ほかのパラメータ28
残りの3パラメータは、RDSのインスタンスタイプ
にひもづくパラメータがあるらしくロジックが不明
db.t2.micro
VCPU1	メモリ1GiB
db.t2.medium
VCPU2	メモリ4GiB
back_log 63 112
host_cache_size 194 440
thread_cache_size 66 312
⾃サーバとほぼ同じスペックのRDSを⽴てて
パラメータを確認するのが良いのでは?
MySQLのとりまチューニング まとめ29
RDSでデフォルトでチューニングされているもの
1. innodb_buffer_pool_sizeはサーバメモリの3/4
2. max_connectionsはサーバメモリ1.5MB毎1増加
3. その他パラメータは、同じくらいのRDSを⽴てて値
を確認する
Update 2010/7/21
まとめ
30
RDSを参考にしたとりまチューニングをご紹介
まとめ31
あくまでとりまチューニング
デフォルト設定よりマシな環境を作るのが⽬的
チューニングは、⽬標数値をもって実施するべき
DB毎にチューニングの定⽯を紹介したサイトは多
くあるので、RDS以外にも参考にしてください

More Related Content

What's hot

MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
 

What's hot (20)

Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
 
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについてeBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
ストリーム処理におけるApache Avroの活用について(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
 
eBPFは何が嬉しいのか
eBPFは何が嬉しいのかeBPFは何が嬉しいのか
eBPFは何が嬉しいのか
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
 
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
 

Similar to Amazon RDSを参考にしたとりまチューニング

C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
Insight Technology, Inc.
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tips
Masayuki Ozawa
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
Recruit Technologies
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?
Masayuki Ozawa
 

Similar to Amazon RDSを参考にしたとりまチューニング (20)

C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
 
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreadingDataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
 
20130203 oss-db-lpi
20130203 oss-db-lpi20130203 oss-db-lpi
20130203 oss-db-lpi
 
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー
 
SharePoint 2013 Preview レビュー
SharePoint 2013 Preview レビューSharePoint 2013 Preview レビュー
SharePoint 2013 Preview レビュー
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tips
 
ビジネスサイドが知っておくべきアプリケーションのデータ分析の話
ビジネスサイドが知っておくべきアプリケーションのデータ分析の話ビジネスサイドが知っておくべきアプリケーションのデータ分析の話
ビジネスサイドが知っておくべきアプリケーションのデータ分析の話
 
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
 
Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版Yahoo! JAPANのOracle構成-2017年版
Yahoo! JAPANのOracle構成-2017年版
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
 
Yahoo!検索のパフォーマンス向上策全て見せます
Yahoo!検索のパフォーマンス向上策全て見せますYahoo!検索のパフォーマンス向上策全て見せます
Yahoo!検索のパフォーマンス向上策全て見せます
 
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
 
アジャイル開発&TFS導入
アジャイル開発&TFS導入アジャイル開発&TFS導入
アジャイル開発&TFS導入
 
20140120 presto meetup
20140120 presto meetup20140120 presto meetup
20140120 presto meetup
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
The Digital Experiences with Postgresql in Taiwan
The Digital Experiences with Postgresql in TaiwanThe Digital Experiences with Postgresql in Taiwan
The Digital Experiences with Postgresql in Taiwan
 
経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ経済学のための実践的データ分析 4.SQL ことはじめ
経済学のための実践的データ分析 4.SQL ことはじめ
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?
 

Recently uploaded

Recently uploaded (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Amazon RDSを参考にしたとりまチューニング