Mô hình MySQL Proxy – một master – hai slave

Một phần của tài liệu NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY (Trang 80 - 90)

Mô hình này bao gồm MySQL Proxy và một giải pháp replication với một master và hai slave.

Máy chủ master có địa chỉ IP và cổng là 10.10.17.40:3306. Máy chủ slave thứ nhất có địa chỉ IP và công là: 10.10.17.5:3306 Máy chủ slave thứ hai có địa chỉ IP và cổng là: 10.10.17.100:3306 MySQL Proxy có địa chỉ IP là 10.10.17.100, lắng nghe trên cổng 4040.

65

Sử dụng máy có địa chỉ IP là 10.10.17.40 làm client để kết nối đến các máy chủ.

a) Kết quả chạy của MySQL Proxy:

Kết quả chạy của MySQL Proxy trong mô hình này ở hai giai đoạn 1 và giai đoạn 3 của quá trình chạy công cụ mysqlslap có kết quả tƣơng tự trong giai đoạn 1 và giai đoạn 3 ở mô hình MySQL Proxy – một master – một slave:

Giai đoạn 1 của quá trình chạy công cụ mysqlslap

# mysql-proxy --admin-username=root \ > --admin-password=giang \ > --admin-address=10.10.17.100:4041 \ > --proxy- address=10.10.17.100:4040\ > --proxy-backend-addresses=10.10.17.40:3306 \ > --proxy-read-only-backend-addresses=10.10.17.5:3306 \ > --proxy-read-only-backend-addresses=10.10.17.100:3306 \ > --admin-lua-script=/home/giangvit/workspace/proxy/admin-script.lua \ > --proxy-lua-script=/home/giangvit/workspace/mysqlProxy/rw4.lua

2012-05-15 16:47:32: [global] (*) mysql-proxy 0.9.0 started

[connect_server] 10.10.17.40:38453 [1].connected_clients = 0 [1].pool.cur_idle = 0 [1].pool.max_idle = 1000000 [1].pool.min_idle = 1 [1].type = 1 [1].state = 0

66 [read_query] 10.10.17.40:38453

current backend = 0 client default db = client username = root

query = DROP SCHEMA IF EXISTS `mysqlslap` sending to backend : 10.10.17.40:3306

is_slave : false server default db: server username : root in_trans : false in_calc_found : false COM_QUERY : true [read_query] 10.10.17.40:38453 current backend = 0 client default db = client username = root

query = CREATE SCHEMA `mysqlslap` sending to backend : 10.10.17.40:3306 is_slave : false

server default db: server username : root in_trans : false

in_calc_found : false COM_QUERY : true

67 current backend = 0

client default db = client username = root

sending to backend : 10.10.17.40:3306 is_slave : false

server default db: server username : root in_trans : false

in_calc_found : false COM_QUERY : false

[read_query] 10.10.17.40:38453 current backend = 0

client default db = mysqlslap client username = root

query = CREATE TABLE `t1` (id serial,intcol1 INT(32),charcol1 VARCHAR(128)) sending to backend : 10.10.17.40:3306

is_slave : false

server default db: mysqlslap server username : root in_trans : false

in_calc_found : false COM_QUERY : true

[read_query] 10.10.17.40:38453 current backend = 0

68 client username = root

query = INSERT INTO t1 VALUES

(NULL,1804289383,'mxvtvmC9127qJNm06sGB8R92q2j7vTiiITRDGXM9ZLzkdekb WtmXKwZ2qG1llkRw5m9DHOFilEREk3q7oce8O3BEJC0woJsm6uzFAEynLH2xCsw 1KQ1lT4zg9rdxBL')

sending to backend : 10.10.17.40:3306 is_slave : false

server default db: mysqlslap server username : root in_trans : false

in_calc_found : false COM_QUERY : true

(read_query_result) staying on the same backend in_trans : false

in_calc_found : false have_insert_id : true

69

Giai đoạn 3 của quá trình chạy công cụ mysqlslap:

[read_query] 10.10.17.40:47303 current backend = 0

client default db = mysqlslap client username = root

(QUIT) current backend = 0 [read_query] 10.10.17.40:40536 current backend = 0

client default db = mysqlslap client username = root

query = DROP SCHEMA IF EXISTS `mysqlslap` sending to backend : 10.10.17.40:3306

is_slave : false

server default db: mysqlslap server username : root in_trans : false in_calc_found : false COM_QUERY : true [disconnect_client] 10.10.17.40:47303 [read_query] 10.10.17.40:40536 current backend = 0

client default db = mysqlslap client username = root

(QUIT) current backend = 0

70

Sự khác nhau chính là ở giai đoạn 2 của quá trình chạy công cụ mysqlslap:

Mô hình trƣớc, các câu lệnh SELECT chỉ đƣợc gửi đến một máy chủ slave. Còn trong mô hình này, các câu lệnh SELECT đƣợc MySQL Proxy gửi đều về hai slave theo thuật toán round-robin:

sending to backend : 10.10.17.5:3306 is_slave : true sending to backend : 10.10.17.100:3306 is_slave : true Giai đoạn 2: [read_query] 10.10.17.40:38844 current backend = 0

client default db = mysqlslap client username = root

query = SELECT intcol1,charcol1 FROM t1 sending to backend : 10.10.17.5:3306

is_slave : true

server default db: mysqlslap server username : root in_trans : false

in_calc_found : false COM_QUERY : true

[read_query] 10.10.17.40:38850 current backend = 0

71 client default db = mysqlslap

client username = root

query = SELECT intcol1,charcol1 FROM t1 sending to backend : 10.10.17.100:3306 is_slave : true

server default db: mysqlslap server username : root in_trans : false

in_calc_found : false COM_QUERY : true

[read_query] 10.10.17.40:38864 current backend = 0

client default db = mysqlslap client username = root

query = SELECT intcol1,charcol1 FROM t1 sending to backend : 10.10.17.5:3306

is_slave : true

server default db: mysqlslap server username : root in_trans : false in_calc_found : false COM_QUERY : true [disconnect_client] 10.10.17.40:38745 [read_query] 10.10.17.40:38856 current backend = 0

72 client default db = mysqlslap

client username = root

query = SELECT intcol1,charcol1 FROM t1 sending to backend : 10.10.17.100:3306 is_slave : true

server default db: mysqlslap server username : root in_trans : false

in_calc_found : false COM_QUERY : true

b) Kết quả thời gian trả về từ công cụ mysqlslap

Kết quả thực nghiệm thời gian chạy các truy vấn trong mô hình này nhƣ bảng sau:

Bảng 4: Kết quả thời gian chạy các truy vấn trong mô hình MySQL Proxy-master-multi slave

--number-of-queries --concurrency Average number of seconds to run queries

100 100 2.550

600 600 9.170

1500 700 9.256

2000 800 9.983

73

Hình 211: Hiệu năng CPU của master

74

Hình 233: Hiệu năng trung bình tải

Một phần của tài liệu NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY (Trang 80 - 90)