22. ■負荷対応とは
高負荷対策とは、ズバリ!
HTTPの待ち行列を
取り除く
ことです
Copyright 2010 KLab Inc. All rights reserved. 22
23. ■負荷の正体
WEB/DBサーバ共に一度に接続できる
Connection数には上限がある
ロード WEB DB
バランサ サーバ サーバ
○の部分でHTTPリクエストが
詰まると待ち行列が増える これが負荷の正体
コンポーネント間の接続時間をできるだけ短くし、
単位時間あたりのConnection数を増やす努力を
する!
Copyright 2010 KLab Inc. All rights reserved. 23
30. ■3. 遅いSQLを検出し、対策する
slow_query_log
• 実行時間が閾値を超えるSQLを記録する機能
– 記録先はテーブルかファイルを指定可能
– インデックスが使われていないSQLも記録可能
– SELECT結果件数が閾値以上のSQLも記録可能
explain構文
• SELECT文の実行計画を表示する
– 遅いSQLをexplainで解析し、改修計画を考える
Copyright 2010 KLab Inc. All rights reserved. 30
31. ■4.SELECTクエリをスレーブDBに逃がす
マスター スレーブ
DB DB
Insert into hoge values(1,hoge); Insert into hoge values(1,hoge);
MySQLのレプリケーション機能
マスターDBの変更をスレーブDBに反映する仕組み
非同期処理のため、伝送遅延がおきる
前日のユーザーランキング等、遅延してもいい情
報をスレーブDBからSELECTすることでマスター
DBへの参照を軽減することが出来る
Copyright 2010 KLab Inc. All rights reserved. 31