18. MySQL
• リリースしたてのタイトル
MySQL Replication MySQL
(M) (S)
MySQL
TABLE-a (S)
MySQL
TABLE-b (S)
TABLE-c
どのようなタイトルでもMaster×1 , Slave×3くらいでスタート。
基本的にWebで2000万PV(day)ならちょっと辛いくらいで問題なし。
DBは1CPU、SSDで統一。 スレーブが何十台も増えて、マスター分割した
り、レプリケーションやWeb間通信でラックスイッチ折り返しトラフィックなどが
目立ってきたら集約したい → ここでやっとioDriveを検討。
19. MySQL
• Slaveが数台増えてくるなど、なんとなく不安になってきたら
Master分割
MySQL Replication MySQL
(M) (S)
MySQL
TABLE-a (S)
MySQL
TABLE-b (S)
MySQL Replication MySQL
(M) (S)
MySQL
(S)
MySQL
TABLE-c
(S)
• テーブルの分散なので効果が見えにくい時もある。(分割対
象テーブルの利用率など)
20. MySQL
• パーテショニングは使っていない。
MySQL MySQL ioDrive入れて
Replication 優良課金ユーザ用
(M) (S)
MySQL のシステム
TABLE-a (S)
MySQL
RANGE、LIST、HASH、KEY TABLE-b (S)
(偶数奇数、優良不良ユーザ
TABLE-c
などの振り分け)
無課金、休眠
MySQL MySQL 一見、お試しユーザ用
Replication (弱スペック)
(M) (S)
MySQL
(S)
MySQL ABテストシステム
TABLE-a 使って広告乗せたい
(S)
TABLE-b くらい(違反)
TABLE-c
• 個人的には使いたいけど最後かな・・・。
(データバックアップなどの問題もあるし)
21. MySQL
• マスター(更新)スレーブ(参照)構成の場合、ヒットすると大
変なことになる。
Apache
Apache Apache
Apache
Apache MySQL Replication Apache MySQL
××
Apache
Apache ××
Apache
Apache MySQL
Apache (M1) Apache (S × 9)
××99××
Apache
Apache ××99××
Apache MySQL
(S × 9)
99××99 TABLE-a 99× 99
MySQL ioDrive ×3
99 (S1 × 9)
9
MySQL Replication MySQL
(M2) MySQL
(S × × 2)
(S2 9)
TABLE-b
MySQL Replication MySQL
(M3) MySQL
MySQL
(S ××9)
(S × 3)
TABLE-c (S3 3)
これだけアクセスのあるサービスで台数が増えるとネットワーク(ラック
スイッチ)かディスクIOが悲鳴。 ioDriveの出番!
22. MySQL
• ioDrive投入検証をしているサービス。。
まだ検証なので、基本的に振り分け比率など
も変えず1:1で運用。
LVS SSD9台、ioDrive3台の場合、12回のアク
セスのうち、3回しかioDriveが当たらない。
(検証なので・・・)
Apache
Apache
Apache MySQL
××
Apache
Apache MySQL
Apache (S × 9)
××99××
Apache MySQL
(S × 9) 高負荷時は先にSSD側のマシンがio遅延な
99× 99
MySQL ioDrive ×3
(S1 × 9)
9
どに見舞われる。
ioDrive5台くらいにしてSSD全廃したいが
もう少しキャパシティプランニングをちゃんと
やりたい。