Suche senden
Hochladen
MySQL負荷分散の方法
•
33 gefällt mir
•
26,889 views
佐久本正太
Folgen
Karriere
Melden
Teilen
Melden
Teilen
1 von 41
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
AWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザ
Noritaka Sekiyama
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門
Akira Shimosako
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
都元ダイスケ Miyamoto
Empfohlen
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
Tetsutaro Watanabe
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
AWS で Presto を徹底的に使いこなすワザ
AWS で Presto を徹底的に使いこなすワザ
Noritaka Sekiyama
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門
Akira Shimosako
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
都元ダイスケ Miyamoto
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
ロードバランスへの長い道
ロードバランスへの長い道
Jun Kato
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
MongoDBの監視
MongoDBの監視
Tetsutaro Watanabe
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
Yuta Imai
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設
修平 富田
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Y Watanabe
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
Mikiya Okuno
Weitere ähnliche Inhalte
Was ist angesagt?
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
ロードバランスへの長い道
ロードバランスへの長い道
Jun Kato
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
Mikiya Okuno
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
MongoDBの監視
MongoDBの監視
Tetsutaro Watanabe
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
Yuta Imai
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設
修平 富田
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Y Watanabe
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Was ist angesagt?
(20)
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
ロードバランスへの長い道
ロードバランスへの長い道
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
MySQLアーキテクチャ図解講座
MySQLアーキテクチャ図解講座
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Redisの特徴と活用方法について
Redisの特徴と活用方法について
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
MongoDBの監視
MongoDBの監視
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Ähnlich wie MySQL負荷分散の方法
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
Mikiya Okuno
忍者ツールズのCouchbase導入事例
忍者ツールズのCouchbase導入事例
Kenichi Tsunokawa
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
SORACOM, INC
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
Iwasaki Noboru
JPUGしくみ+アプリケーション勉強会(第25回)
JPUGしくみ+アプリケーション勉強会(第25回)
Yoshinori Nakanishi
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
KLab株式会社
serverless
serverless
Akira Otsuka
MySQL Casual な生活
MySQL Casual な生活
Hisashi HATAKEYAMA
MHAを検証して導入した話
MHAを検証して導入した話
Yu Komiya
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
Masao Fujii
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
Kohei MATSUSHITA
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
Naoto Gohko
Using Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba Pigg
Yuuki Namikawa
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
Amazon Web Services Japan
JAWS-UG-Kyoto-2nd
JAWS-UG-Kyoto-2nd
Tatsuru Watanabe
Eight meets AWS
Eight meets AWS
Tetsuya Mase
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
Takeshi Mikami
Ähnlich wie MySQL負荷分散の方法
(20)
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
忍者ツールズのCouchbase導入事例
忍者ツールズのCouchbase導入事例
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
20121115 オープンソースでハイアベイラビリティ! ~クラスタ管理の設計構築ハウツー&エンジニア思考力~
JPUGしくみ+アプリケーション勉強会(第25回)
JPUGしくみ+アプリケーション勉強会(第25回)
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
serverless
serverless
MySQL Casual な生活
MySQL Casual な生活
MHAを検証して導入した話
MHAを検証して導入した話
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
OpenStack + KVM + IPv6 = oname.com; Next Folsom/Grizzly Service development s...
Using Chef for Infrastructure Automation of Ameba Pigg
Using Chef for Infrastructure Automation of Ameba Pigg
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
[AWS Summit 2012] クラウドデザインパターン#6 CDP クラウド監視編
JAWS-UG-Kyoto-2nd
JAWS-UG-Kyoto-2nd
Eight meets AWS
Eight meets AWS
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
Mehr von 佐久本正太
合同会社sirobako 会社概要 2020年度版
合同会社sirobako 会社概要 2020年度版
佐久本正太
沖テクNight by sirobako
沖テクNight by sirobako
佐久本正太
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
佐久本正太
MySQL+Docker
MySQL+Docker
佐久本正太
Bluemix + Bluetoothガジェット
Bluemix + Bluetoothガジェット
佐久本正太
幹事代行Spheroくん
幹事代行Spheroくん
佐久本正太
Mehr von 佐久本正太
(6)
合同会社sirobako 会社概要 2020年度版
合同会社sirobako 会社概要 2020年度版
沖テクNight by sirobako
沖テクNight by sirobako
Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
MySQL+Docker
MySQL+Docker
Bluemix + Bluetoothガジェット
Bluemix + Bluetoothガジェット
幹事代行Spheroくん
幹事代行Spheroくん
MySQL負荷分散の方法
1.
MySQL処理分散環境の構築
2012.8.24 株式会社シーエー・アドバンス 佐久本 正太
2.
自己紹介 佐久本
正太 29歳 株式会社シーエー・アドバンス 技術推進Gマネージャー MySQLClusterやDRBD、PaceMakerの HA化ソリューションで遊んでます。
3.
自己紹介 SNSアカウント アメブロ:さくちゃん Facebook:本名で検索!
Twitter:@vSakumoto 趣味:囲碁 (四段持ってます!)
4.
MySQLとは!
5.
みなさん知って ますよね? ってことで
6.
早速MySQL レプリケーション 説明!
7.
そもそもレプリケーションって? データベースのレプリケーションは多くのデータベース管理システムが採用している 概念で、データベースのオリジナルとコピーのマスタースレーブ関係を意味する。 マスター側は更新を記録し、それがスレーブ群に通知される。スレーブ側は更新を正 しく受け取ったというメッセージを送り、次の更新を受け付けられる状態であることを 通知する。
Wikipedia引用 分かります?
8.
そもそもレプリケーションって? 一応、図で表すとこんなかんじ
マスタ サーバ INSERT・・・ UPDATE・・・ DELETE・・・ スレーブ スレーブ スレーブ サーバ サーバ サーバ
9.
そもそもレプリケーションって? 非同期レプリケーションの注意点! 非同期レプリケーションはマスタサーバーに書き込 まれたデータが必ずしも、スレーブにデータが有る ことは約束されていません! 注意!過去の体験談・・・
10.
MySQL Replicationとは WEBアプリケーションでセッションDBをスレーブか ら読み取ると・・・ ⇒画面遷移が著しく多いアプリケーションに置いて は、少々の遅延でもセッションが正常に読み取れ ず、ログアウトされる事象が多発 更新後のデータを即座に見るアプリケーション部 分はマスターサーバから読み取りましょう
11.
MySQL もう1つの レプリケーション
説明!
12.
SemiSyncReplicationとは MySQL5.5から組み込み! SemiSyncReplicationとは準同期レプリケーショ ンと言われ通常のレプリケーションと異なります。 通常レプリケーション(非同期レプリケーション) SemiSyncReplication(準同期レプリケーション) の違いは次のとおりです。
13.
SemiSyncReplicationとは ■通常レプリケーション ①アプリケーションからマスタサーバへクエリ送信 ②マスタサーバでクエリを受信し、バイナリログに書き込み ③マスタサーバがアプリケーションにコミットしたことを伝達 ④バイナリログに書き込まれたクエリをスレーブサーバーに転送
① ④ マスタ スレーブ WEB-AP サーバ サーバ ② ③ Table Relay Table BinLog Space Log Space
14.
SemiSyncReplicationとは ■準同期レプリケーション(SemiSyncReplication) ①アプリケーションからマスタサーバへクエリ送信 ②マスタサーバでクエリを受信し、バイナリログに書き込み ③マスタからクエリをスレーブに転送
④リレーログに書き込み ⑤スレーブのリレーログ書き込み確認後 ⑥アプリケーションにコミットされたことを伝達 ① ③ マスタ スレーブ WEB-AP サーバ サーバ ② ⑥ ⑤ Table Relay Table BinLog Space Log Space
15.
SemiSyncReplicationとは
あれ?違いは? と思った方?挙手! (@`▽´@)/ ハイッ
16.
SemiSyncReplicationとは 大きな違いとして・・・ コミット応答がスレーブのリレーログに 書き込まれた後になる! ※ただしテーブルスペースまでの書き込みは保証していません※
17.
SemiSyncReplicationとは 何が出来る? HA構成が出来る! マスタ故障時でもスレーブへデータが転送されていることが保証されている ので、PaceMaker等での自動フェイルオーバーが可能!
サーバーが落ちたらどうしよう ((;゚Д ゚). ガクブル から・・・ (*μ _μ )oO(幸) 眠れる幸せ
18.
SemiSyncReplicationとは 通常レプリケーション、準同期レプリケーション 使い分け! ベンチマーク取ってはいませんが・・・ メリット ・サーバー故障時にもデータが転送されていることが保証 ・コミット動作が、リレーログ書き込みまでを保証しているので通常レプリケー ションより遅延が少ない デメリット ・通常レプリケーションと比べ、コミット動作が違うため書き込み速度が劣る
19.
次が本題!
20.
MySQL 負荷分散方法!
21.
複数台のスレー ブ接続をどう やって分散?
22.
負荷分散方法その① アプリケーション側でスレーブ接続先を選択
マスタ サーバ スレーブ サーバ① WEB-AP プログラムで スレーブ スレーブサーバを 参照系クエリ サーバ② 選択する スレーブ サーバ③
23.
負荷分散方法その① デメリット! ・スレーブへのコネクション数を見ていないため、本来の負 荷分散となっていない ・プログラム側でスレーブサーバへの接続確認(死活監 視)をするため、接続のオーバーヘッドが伴う ・遅延が起きていた場合は?? ・レプリケーションが停止していたら??
24.
じゃあ どうする?
25.
負荷分散方法その② ロードバランサーを使用! ※KeepAlived
マスタ サーバ スレーブ サーバ① WEB-AP LB スレーブ 参照系クエリ (keepalived) サーバ② スレーブ サーバ③
26.
負荷分散方法その② メリット! ・接続先をロードバランサーに向けるだけで、自動的にバ ランシングしてくれる ※サーバー追加してもコードの追加は不要※ ・KeepAlivedならポート監視(MySQLでは3306)ができるの で、自動切り離しが可能
27.
しかし ・遅延が起きていた場合は?? ・レプリケーションが停止していたら??
28.
負荷分散方法その③ 試行錯誤の組み合わせ MySQL+(Apache+PHP) Keepalived(MISC)
マスタ サーバ スレーブ サーバ① Apache WEB-AP スレーブ keepalived 参照系クエリ MISC_CHECK サーバ② Apache スレーブ サーバ③ Apache
29.
負荷分散方法その③ MySQL+(Apache+PHP) スレーブサーバーにWEBサーバーを立て次の ソースコードを設置! ※環境※ php5.3系 Apache2.1系 cakephp 2.1系
30.
負荷分散方法その③ <?php class CheckhtmlController extends
AppController { public $name = 'User'; public function index(){ $this->layout = ""; $DBTYPE = Configure::read("DBTYPE"); if ( $DBTYPE["MASTER_DB"] == 1 ){ $msg = 0; } elseif ( $DBTYPE["SLAVE_DB"] == 1 ){ try { $chkStatus = $this->User->slaveStatus(); $status = $chkStatus[0][0]; } catch (Exception $e){ $msg = 1; }
31.
負荷分散方法その③
//$DBTYPE["BEHIND"] 遅延許容値 if ( $status["Seconds_Behind_Master"] <= $DBTYPE["BEHIND"] && $status["Seconds_Behind_Master"] <> NULL && $status["Last_SQL_Errno"] == 0 ){ //print "遅延なし"; $msg = 0; } elseif ($status["Slave_IO_Running"] == "No" || $status["Slave_SQL_Running"] == "No" ) { //レプリケーションが止まっています。 $msg = 1; } else { //遅延しています。 $msg = 1; } } else { $msg = 1; } print $msg; } }
32.
負荷分散方法その③ MySQL+(Apache+PHP) ソースコード解説: ローカルホストのMySQLの状態によりWEBで表示を変化 ⇒MySQLの「show slave
status」コマンドから判断! ※0が正常、1が異常の出力値 以下の場合に異常値を出力 ・遅延が設定している閾値を超えた場合 ・レプリケーションがストップしている場合 ・MySQLが起動していない場合
33.
負荷分散方法その③ Keepalived(MISC) KeepAlivedに次のMISC_CHECKのスクリプトを設置 Keepalived.confも変更する ※環境※ Keepalived1.1.15
34.
負荷分散方法その③ $ vim misc.sh #!/bin/sh URL="http://$1/checkhtml" ret=`wget
-o /dev/null -O - "$URL"` if [ $ret == 0 ] then echo $ret exit $ret else echo $ret exit 1 fi $ ./misc.sh 192.168.1.21 #引数はスレーブサーバのIPアドレス $ 0 #正常値は0が返る $ ./misc.sh 192.168.1.22 $ 1 #異常値は1が返る
35.
負荷分散方法その③ $ vim /etc/keepalived/keepalived.conf virtual_server_group
MySQLSlave { 192.168.1.20 3306 #VIP(仮想IP) } virtual_server group MySQLSlave { delay_loop 3 lvs_sched wrr lvs_method DR protocol TCP virtualhost health #スレーブが2つ落ちた場合はマスタへ向ける sorry_server 192.168.1.10 3306 #マスタサーバのIPアドレス
36.
負荷分散方法その③ #以下リアルサーバー
real_server 192.168.1.21 3306 { weight 1 inhibit_on_failure MISC_CHECK { misc_path "/bin/sh /root/misc.sh 192.168.1.21" misc_timeout 10 } } real_server 192.168.1.22 3306 { weight 1 inhibit_on_failure MISC_CHECK { misc_path "/bin/sh /root/misc.sh 192.168.1.22" misc_timeout 10 } } }
37.
負荷分散方法その③ MySQL+(Apache+PHP) Keepalived(Misc) KeepalivedでスレーブのWEBページをチェック ⇒問題なければMySQLのバランシングに追加 ※死活・遅延・レプリケーションストップ監視が一気にでき ちゃう!!
keepalived Misc Check スレーブ スレーブ スレーブ サーバ③ サーバ② サーバ① Apache Apache Apache
38.
・遅延が起きていた場合はどうするの?? ・レプリケーションが停止していたらどうするの??
解決!
39.
まとめ MySQL+(Apache+PHP) + KeepAlivedを使えば・・・ ・自動で接続数の少ないサーバに接続を張ることが出来る! ・死活監視が出来る! ・遅延を検知することができる! ・レプリケーション停止を検知することが出来る!
40.
ご清聴ありがとうございました。
41.
続きはWEBで
http://ameblo.jp/exgineer/ 9月頭までには各種設定方法を記載いたします!
Jetzt herunterladen