Pen : MySQLを負荷分散する2015/01/31 |
|
Pen による MySQL の負荷分散の設定です。
例として、2台の MySQL バックエンドへ負荷分散するように設定します。
|
-------+-----------------------------------------------
|
+-------------------+--------------------+
|10.0.0.30 |10.0.0.51 |10.0.0.52
+-----+------+ +-------+------+ +-------+------+
| Frontend | | Backend#1 | | Backend#2 |
| Pen Server | | MySQL Server | | MySQL Server |
+------------+ +--------------+ +--------------+
|
| [1] | Pen の設定です。起動スクリプト作成等の基本設定はこちらを参照してください。 |
|
[root@dlp ~]#
vi /etc/pen.conf # 新規作成
LOGFILE=/var/log/pen.log
WEBFILE=/var/www/pen/webstats.html CONTROL=127.0.0.1:10080 MAX_CONNECTIONS=256 ROUNDROBIN=true # 待ち受けポート PORT=3306 # バックエンドサーバーの数 BACKEND=2 # バックエンドサーバーを定義 SERVER1=10.0.0.51:3306 SERVER2=10.0.0.52:3306 /etc/rc.d/init.d/pend restart Stopping Pend: [ OK ] Starting Pend: [ OK ] |
| [2] | 任意のクライアントから、Pen サーバー宛てに MySQL 接続し、正常に負荷分散されるか確認してください。 以下の例では、MySQL サーバーの keystone データベースへ keystone ユーザーで接続し、table01 を select しています。 何度か接続するとバックエンドが切り替わり、正常に負荷分散できていることが分かります。 |
|
[root@desktop ~]# mysql -u keystone -p -h 10.0.0.30 keystone -e "select * from table01;" Enter password: +------+-------------------+ | id | name | +------+-------------------+ | 1 | db01.srv.world | +------+-------------------+[root@desktop ~]# mysql -u keystone -p -h 10.0.0.30 keystone -e "select * from table01;" Enter password: +------+-------------------+ | id | name | +------+-------------------+ | 1 | db02.srv.world | +------+-------------------+ |