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 | +------+-------------------+ |