狠狠撸
Submit Search
Amazon RDSを参考にしたとりまチューニング
?
2 likes
?
5,167 views
S
Shunsuke Mihara
Follow
2016年08月関西地区PostgreSQL勉強会(初心者向け)での発表資料 https://jpug-kansai.doorkeeper.jp/events/50234
Read less
Read more
1 of 31
Download now
Downloaded 12 times
More Related Content
Amazon RDSを参考にしたとりまチューニング
1.
Update 2010/7/21 Amazon RDSを参考にした とりまチューニング 2016/08/19
関?地区PostgreSQL勉強会 株式会社ロックオン 三原俊介 1
2.
Update 2010/7/21 ??紹介 2
3.
2012.04 株式会社ロックオン?社 インフラユニット 現在 マーケティングPF
開発部 主にインフラ全般、開発環境の改善、 ロックオフの管理?などなどやってます 三原 俊介– Shunsuke Mihara ??紹介3
4.
始める前のアンケート4 質問: みなさんDBのチューニング経験はありますか 1. PostgreSQLを使ったことがある? 2.
PostgreSQLのチューニングをしたことがある? 3. MySQLを使ったことがある? 4. MySQLのチューニングをしたことがある?
5.
今回のテーマ5 DBの初期構築時に 最低限調整しておきたいパラメータ ?次 1.チューニングの必要性 と とりまチューニング 2.Amazon
RDS 3.PostgreSQLのとりまチューニング 4.(おまけ) MySQLのとりまチューニング
6.
Update 2010/7/21 チューニングの必要性 と
とりまチューニング 6
7.
チューニングの必要性7 そもそもDBの構築直後(実装フェイズ前)に チューニングは必要ない 1. 性能改善は欲を出せばキリがない 達成するべき?標値が決まった上で、どうやれ ば達成できるかボトルネックを考慮して実施 2. 基準となるDBのアクセス傾向が必要
8.
とりまチューニング8 とはいえ、 DBのデフォルト値から とりあえず、まあ変更した?が良い値はあります なぜデフォルトが最適な初期値になっていないのか 1. 最低限のスペックで動作させるための値 2.
安全側に倒した値 3. 1,2の項?と連動させないと意味が無い値 では、何を基準としてとりまチューニングを?うか
9.
Update 2010/7/21 Amazon RDS 9
10.
AWSのRDBサービス Amazon RDS10 Amazon
RDSのデフォルト値を とりまチューニングの参考にします 1. デフォルトでチューニング済みの設定で起動 2. RDSのスペックに合わせて動的に設定 3. 世の中で広く使われているDB設定 [注意] RDSのデフォルトパラメータは、Linuxの DB専?サーバを想定したパラメータ WEBとの同居や Windowサーバ だと適切ではな い場合がある
11.
とりまチューニング項?の調査観点11 「スペックに連動する値」と 「DBデフォルトの値との差分」に着? スペックの違うRDS2台を?較 → どの値はスペックに合わせて変更するべきか RDSとオンプレにインストールしたDBを?較 → どの値はスペックに関わらず変更するべきか
12.
とりまチューニング項?の調査?法12 DB3台を?意し、パラメータを?較 1. インスタンスタイプ(スペック)の違うRDSを2 台起動 2. オンプレに同バージョンのDBをインストール 3.
DBに?り設定値を取得 A) PostgreSQLならば「SHOW ALL;」 B) MySQLならば「SHOW VARIABLES;」
13.
13 ?較表を作成して確認
14.
Update 2010/7/21 PostgreSQLのとりまチューニング 14
15.
RDSのPostgreSQL 9.5.2 設定15 スペックと連動する値
4項? DBデフォルト値と差分がある値 53項? 全パラメータ238項?中 1.スペックと連動する値 shared_buffers, effective_cache_size, max_connections, wal_buffers 2.DBデフォルト値と差分がある値 ※53項?は多いので以下に絞ってご紹介 autovacuum系, チェックポイント系, 多?語対応系
16.
shared_buffers16 shared_buffersはサーバメモリの1/4 ■shared_buffersとは データベースサーバが使?する共有メモリバッファ のために使?するメモリ量 公式ドキュメント にも25%(1/4)が 良いよと書いて ある
17.
effective_cache_size17 effective_cache_sizeはサーバメモリの1/2 ■effective_cache_sizeとは プランナーがインデックススキャンかシーケンシャ ルスキャンかの判断に利?する参考値 PostgreSQL wiki にも全メモリの 1/2が保守的な 設定と記載
18.
max_connectionsとwal_buffers18 max_connectionsはサーバメモリ128KB毎1増加 wal_buffersはデフォルト設定で?動調整 ■max_connectionsとは DBへの同時コネクション数の最? ■wal_bufferとは トランザクションログを書き出すバッファ デフォルトの?動設定でshared_buffersの1/32
19.
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.
チェックポイント系20 チェックポイントの書き出し処理を分散し、 負荷を減らすように調整(リカバリ時間は増加) ■ チェックポイントとは PostgreSQLの共有バッファとディスク間の整合性 を取る処理 Update ○ Insert △ ???? 同期 (チェックポイント)
21.
チェックポイント系21 チェックポイントの書き出し処理を分散し、 負荷を減らすように調整(リカバリ時間は増加) ■ checkpoint_completion_target 0.5
→ 0.9 チェックポイントの書き出し処理が、この値の割合に なるように調整されて、チェックポイントが実? ■ max_wal_size 1GB → 2GB ■ min_wal_size 80MB → 256MB ※9.5でcheckpoint_segmentsの代わりに導?
22.
多?語対応系22 マルチバイト?字を扱いやすいように設定 ■ lc_collate C
→ en_US.UTF-8 ■ lc_ctype C → en_US.UTF-8 DB作成時の多?語対応のベースになる値 ※ DB作成後変更できない値のためハマりやすい ?本での利?の場合、とりま「jp_JP.UTF-8」で
23.
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. マルチバイト?字を扱いやすいように設定
24.
Update 2010/7/21 (おまけ)MySQLのとりまチューニング 24
25.
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. デフォルトとの差分 ※今回は省略
26.
innodb_buffer_pool_size26 innodb_buffer_pool_sizeはサーバメモリの3/4 ■ innodb_buffer_pool_sizeとは InnoDBのバッファープールのサイズ 公式ドキュメント には、特に良い 値について言及 は無し
27.
max_connections27 max_connectionsはサーバメモリ1.5MB毎1増加 ■max_connectionsとは DBへの同時コネクション数の最? (PostgreSQL の 128KB毎より?きい)
28.
ほかのパラメータ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を?てて パラメータを確認するのが良いのでは?
29.
MySQLのとりまチューニング まとめ29 RDSでデフォルトでチューニングされているもの 1. innodb_buffer_pool_sizeはサーバメモリの3/4 2.
max_connectionsはサーバメモリ1.5MB毎1増加 3. その他パラメータは、同じくらいのRDSを?てて値 を確認する
30.
Update 2010/7/21 まとめ 30
31.
RDSを参考にしたとりまチューニングをご紹介 まとめ31 あくまでとりまチューニング デフォルト設定よりマシな環境を作るのが?的 チューニングは、?標数値をもって実施するべき DB毎にチューニングの定?を紹介したサイトは多 くあるので、RDS以外にも参考にしてください
Download