○レプリケーション構成△
5. MySQLパフォーマンスチューニングの紹介
5−1. デフォルトパラメータファイルとの性能差
5−2. パフォーマンスチューニングのポイント
5−3. パフォーマンスチューニングサービス
5−1. デフォルトパラメータファイルとの性能差
MySQLインストール時「support-files」配下に設定テンプレートファイルがいくつか用意してあります
my-small.cnf :64Mバイト以下のメモリしか搭載できないサーバ向け
my-medium.cnf :128Mバイト程度のメモリを搭載したさまざまな用途の共有サーバで、MySQLに32M
〜64Mバイト程度のメモリ領域を使用できるサーバ向け
my-large.cnf :512Mバイトのメモリを搭載したMySQL専用サーバ向け
my-huge.cnf :1G〜2Gバイトのメモリを搭載したMySQL専用サーバ向け
my-innodb-heavy-4G.cnf:4Gバイトのメモリを搭載したMySQL専用サーバでInnoDBのみ利用し、接続が少な く重いクエリを実行するMySQL
比較的大きめなシステム用のmy-huge.cnfのテンプレートにおけるパラメータ値を利用した場合と、パラメータをチューニングし た場合のベンチマーク結果を示します。
ベンチマーク環境については「1−3.MySQL Enterpriseのスケーラビリティ(1)」と同一です。
尚、構成ファイルやログ配置先に関してのみ、デフォルトファイルを変更しておりますが、比較前後で変更していません。
5−1. デフォルトパラメータファイルとの性能差
【チューニング後のパラメータ】 ※一部抜粋 変更箇所は赤字で記載
skip-locking key̲buffer = 1250M max̲allowed̲packet = 16M table̲cache = 1024 sort̲buffer̲size = 2M read̲buffer̲size = 2M read̲rnd̲buffer̲size = 8M myisam̲sort̲buffer̲size = 64M thread̲cache̲size = 64 thread̲concurrency = 4 max̲connections=1500 net̲read̲timeout=30 net̲write̲timeout=30 back̲log=128
innodb̲buffer̲pool̲size =2250M innodb̲additional̲mem̲pool̲size = 50M innodb̲log̲buffer̲size = 4M
innodb̲thread̲concurrency=8 sync̲binlog=1
【my-huge.cnf パラメータ】 ※一部抜粋 skip-locking
key̲buffer = 384M max̲allowed̲packet = 1M table̲cache = 512 sort̲buffer̲size = 2M read̲buffer̲size = 2M read̲rnd̲buffer̲size = 8M myisam̲sort̲buffer̲size = 64M thread̲cache̲size = 8 thread̲concurrency = 8 innodb̲buffer̲pool̲size = 384M innodb̲additional̲mem̲pool̲size = 20M innodb̲log̲file̲size = 100M
innodb̲log̲buffer̲size = 8M innodb̲flush̲log̲at̲trx̲commit = 1 sync̲binlog=1
変更
READ PK POINT
0 10,000 20,000 30,000
1thread 2threads 4threads 8threads 16threads
C oncur r ent Thr ea d
Queries / Second
Non Tune InnoDB Non Tune MyISAM Tuned InnoDB Tuned MyISAM
READ KEY POINT_LIMIT
0 4,000 8,000 12,000
1thread 2threads 4threads 8threads 16threads
C oncur r ent Thr ea d
Queries / Second
Non Tune InnoDB Non Tune MyISAM Tuned InnoDB Tuned MyISAM 主キーほど顕著な差はない。
非ユニークキーの場合、データ のムラに左右される。
MyISAM、InnoDB 共に大幅な性能改善
5−2. パフォーマンスチューニングのポイント
パフォーマンスチューニングを効率よく行うにあたり、気をつけるべきポイントを記載します。
MySQLパフォーマンスチューニング向上の10のポイント
詳細は別途お問合せください。
バッファ系パラメータチューニング
ディスクIO関連のチューニング
Explain文によるSQLチューニング
Show Statusによるメモリチューニング
Slow Query Logによる問題SQLの発見
MySQLサブクエリーのチューニング
InnoDBログサイズチューニング
クエリキャッシュチューニング
ネクストキーロック問題
クラスタインデックスを原因とするボトルネックSQL
5−3. MySQLパフォーマンスチューニングサービス
弊社では以下のプロセスでパフォーマンスチューニングサービスを提供します。
ヒアリング
「診断サービス」
データベース診断
「診断サービス」
お見積もり ご発注
診断結果のご報告 改善提案
「改善サービス」
お見積もり ご発注
改善サービス 実施
実施後の判定等
「診断サービス」
・チューニングテスト用のscriptを用意 → 動作項目のLOGを取り、スクリプトを掛けて診断する
・解析を行い、CPU使用率、ロードアベレージ、サーバのディスクI/O、MySQLに関する(myconfなど)値について、
現在値と推奨値をレポートする。
「診断サービス」
・チューニングテスト用のscriptを用意 → 動作項目のLOGを取り、スクリプトを掛けて診断する
・解析を行い、CPU使用率、ロードアベレージ、サーバのディスクI/O、MySQLに関する(myconfなど)値について、
現在値と推奨値をレポートする。
■日数の想定
・5〜10営業日(1、2週間)
作業内容により、変動。
■日数の想定
・5〜10営業日(1、2週間)
作業内容により、変動。
■費用の想定
・対応技術者2名で50万〜
作業内容により、変動。
■費用の想定
・対応技術者2名で50万〜
作業内容により、変動。