为观察读写分离效果,可以先停掉slave复制同步(slave stop),通过打开log参数,tail

-f sql.log观察,单独进行读写测试,select查询语句基本上都是在slave中进行的,进行单独写测试,观察sql日志,全部都是在master上进行的。

单独写(Insert)语句测试:

[root@localhost

~]# ./mysqlslap -uadmin -p29019853 -h 192.168.3.19

--concurrency=10 --number-of-queries=200 --debug-info --create-schema=t1

--auto-generate-sql --auto-generate-sql-load-type=write

Benchmark

Average number of seconds to run all

queries: 0.159 seconds

Minimum number of seconds to run all

queries: 0.159 seconds

Maximum number of seconds to run all

queries: 0.159 seconds

Number of clients running queries: 10

Average number of queries per client: 20

User

time 0.00, System time 0.00

Maximum

resident set size 0, Integral resident set size 0

Non-physical

pagefaults 479, Physical pagefaults 0, Swaps 0

Blocks

in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary

context switches 424, Involuntary context switches 34

单独写(Update)语句测试:

[root@localhost

~]# ./mysqlslap -uadmin -p29019853 -h 192.168.3.19

--concurrency=10 --number-of-queries=200 --debug-info --create-schema=t2

--auto-generate-sql --auto-generate-sql-load-type=update

Benchmark

Average number of seconds to run all

queries: 0.528 seconds

Minimum number of seconds to run all

queries: 0.528 seconds

Maximum number of seconds to run all

queries: 0.528 seconds

Number of clients running queries: 10

Average number of queries per client:

20

User

time 0.00, System time 0.00

Maximum

resident set size 0, Integral resident set size 0

Non-physical

pagefaults 478, Physical pagefaults 0, Swaps 0

Blocks

in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary

context switches 443, Involuntary context switches 3

单独读(select)语句测试:

[root@localhost

~]# ./mysqlslap -uadmin -p29019853 -h 192.168.3.19

--concurrency=10 --number-of-queries=200 --debug-info --create-schema=t1

--auto-generate-sql --auto-generate-sql-load-type=read

Benchmark

Average number of seconds to run all

queries: 0.342 seconds

Minimum number of seconds to run all

queries: 0.342 seconds

Maximum number of seconds to run all

queries: 0.342 seconds

Number of clients running queries: 10

Average number of queries per client:

20

User

time 0.00, System time 0.01

Maximum

resident set size 0, Integral resident set size 0

Non-physical

pagefaults 484, Physical pagefaults 0, Swaps 0

Blocks

in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary

context switches 1465, Involuntary context switches 32

混合测试:需开启slave

[root@localhost ~]# ./mysqlslap -uadmin -p29019853 -h 192.168.3.19

--concurrency=10 --number-of-queries=200 --debug-info --create-schema=t1 --auto-generate-sql

--auto-generate-sql-load-type=mixed

Benchmark

Average number of seconds to run all

queries: 1.724 seconds

Minimum number of seconds to run all

queries: 1.724 seconds

Maximum number of seconds to run all

queries: 1.724 seconds

Number of clients running queries: 10

Average number of queries per client:

20

User

time 0.02, System time 0.03

Maximum

resident set size 0, Integral resident set size 0

Non-physical

pagefaults 529, Physical pagefaults 0, Swaps 0

Blocks

in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary

context switches 6858, Involuntary context switches 2

下面测试只有2台服务器master和slave的情况,mysql-proxy安装在master上:

[root@localhost

~]#./mysqlslap -uadmin -p29019853 -h 192.168.3.21

--concurrency=10 --number-of-queries=200 --debug-info --create-schema=t1

--auto-generate-sql --auto-generate-sql-load-type=mixed

Benchmark

Average number of seconds to run all

queries: 1.259 seconds

Minimum number of seconds to run all

queries: 1.259 seconds

Maximum number of seconds to run all

queries: 1.259 seconds

Number of clients running queries: 10

Average number of queries per client:

20

User

time 0.01, System time 0.02

Maximum

resident set size 0, Integral resident set size 0

Non-physical

pagefaults 526, Physical pagefaults 0, Swaps 0

Blocks

in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary

context switches 4065, Involuntary context switches 3

[root@localhost

~]# ./mysqlslap -uadmin -p29019853 -h 192.168.3.21

--concurrency=10 --number-of-queries=200 --debug-info --create-schema=t1

--auto-generate-sql --auto-generate-sql-load-type=read

Benchmark

Average number of seconds to run all

queries: 1.231 seconds

Minimum number of seconds to run all

queries: 1.231 seconds

Maximum number of seconds to run all

queries: 1.231 seconds

Number of clients running queries: 10

Average number of queries per client:

20

User

time 0.02, System time 0.07

Maximum

resident set size 0, Integral resident set size 0

Non-physical

pagefaults 532, Physical pagefaults 0, Swaps 0

Blocks

in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary

context switches 12487, Involuntary context switches 61

[root@localhost

~]# ./mysqlslap -uadmin -p29019853 -h 192.168.3.21

--concurrency=10 --number-of-queries=200 --debug-info --create-schema=t2

--auto-generate-sql --auto-generate-sql-load-type=write

Benchmark

Average number of seconds to run all

queries: 0.490 seconds

Minimum number of seconds to run all

queries: 0.490 seconds

Maximum number of seconds to run all

queries: 0.490 seconds

Number of clients running queries: 10

Average number of queries per client:

20

User

time 0.00, System time 0.00

Maximum

resident set size 0, Integral resident set size 0

Non-physical

pagefaults 480, Physical pagefaults 0, Swaps 0

Blocks

in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary

context switches 361, Involuntary context switches 4

[root@localhost

~]# ./mysqlslap -uadmin -p29019853 -h 192.168.3.19 --concurrency=20

--number-of-queries=400 --debug-info --create-schema=t1 --auto-generate-sql

--auto-generate-sql-load-type=mixed

Benchmark

Average number of seconds to run all

queries: 4.345 seconds

Minimum number of seconds to run all

queries: 4.345 seconds

Maximum number of seconds to run all

queries: 4.345 seconds

Number of clients running queries: 20

Average number of queries per client:

20

User

time 0.05, System time 0.12

Maximum

resident set size 0, Integral resident set size 0

Non-physical

pagefaults 644, Physical pagefaults 0, Swaps 0

Blocks

in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary

context switches 21711, Involuntary context switches 55

[root@localhost

~]# ./mysqlslap -uadmin -p29019853 -h 192.168.3.21 --concurrency=20

--number-of-queries=400 --debug-info --create-schema=t1 --auto-generate-sql

--auto-generate-sql-load-type=mixed

Benchmark

Average number of seconds to run all

queries: 8.757 seconds

Minimum number of seconds to run all

queries: 8.757 seconds

Maximum number of seconds to run all

queries: 8.757 seconds

Number of clients running queries: 20

Average number of queries per client:

20

User

time 0.03, System time 0.10

Maximum

resident set size 0, Integral resident set size 0

Non-physical

pagefaults 640, Physical pagefaults 0, Swaps 0

Blocks

in 0 out 0, Messages in 0 out 0, Signals 0

Voluntary

context switches 15632, Involuntary context switches 34

架构

指标

①MySQL-Proxy+Master/Slave

②Master(MySQL-Proxy)/Slave

Read

Write

Mixed

Read

Write

Mixed

运行所有语句的

平均秒数

0.342

0.159

1.724

4.345

1.231

0.490

1.259

8.757

concurrency

10

10

10

20

10

10

10

20

number of queries

200

200

200

400

200

200

200

400

IP/Port

MySQL-Proxy:

192.168.3.19:3306

Master:

192.168.3.21:3307

Slave:

192.168.3.22:3307

MySQL-Proxy:

192.168.3.21:3306

Master:

192.168.3.21:3307

Slave:

192.168.3.22:3307

mysqlslap -uadmin

-p29019853 -h 192.168.3.21 --concurrency=10 --number-of-queries=200

--debug-info --create-schema=t1 --auto-generate-sql

--auto-generate-sql-load-type=

总结:

使用一台单独的server作为MySQL-Proxy主机,单独读/写操作性能明显优于集成在Master上的方式,同时包含读/写操作的混合查询时在查询量不多的情况下第二种架构比第一种架构处理起来可能会(看具体测得的数据,本人测试结果有时快些,有时慢些)更快些,但当查询达到一定量后,前者性能的优势便凸显而出了。

结论:架构①的整体性能和单项性能都明显优于架构②

注:本次测试使用的都是VMWARE虚拟机,由于多种原因可能导致数据不准确性,所以本次测试的数据仅作为参考,目的是实验,学习

mysql proxy性能差_两种MySQL-Proxy架构的测试对比记录相关推荐

  1. MySQL数据库查询时间段的两种方法

    MySQL数据库查询时间段的两种方法: 1. SELECT* FROMgroup_details model WHEREmodel.create_time BETWEEN TO_DAYS ( '201 ...

  2. MySQL增加外键的两种方式

    MySQL增加外键的两种方式 *根据需求建一下表 i: emp表 ii:dept表 *1.增加外键(创建表的时候) 代码实现(工具:Navicat 12 for MySQL) CREATE TABLE ...

  3. mysql has gone_导致“mysql has gone away”的两种情况

    导致"mysql has gone away"的两种情况 By Cruise 1.  wait_timeout参数 在开发代理server时, 我使用了jdbc连接数据库,并采用长 ...

  4. MySQL 清空表数据的两种方式和区别

    在MySQL中删除数据有两种方式:truncate table 表名.delete from 表名. 它们在以下方面存在区别: 执行效率 truncate不扫描表,相当于重新创建了表,只保留了表的结构 ...

  5. centos设置mysql初始l密码_centos7下mysql初始密码修改的两种方法

    centos7下mysql初始密码修改的两种方法 centos7安装mysql时会得到一个系统给的初始密码,因此我们无法直接登录mysql,需要先对其进行修改 wget http://repo.mys ...

  6. MySQL中删除数据的两种方法_MySQL删除数据库的两种方法

    本文为大家分享了两种MySQL删除数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 删除数据库使用普通用户登陆mysql服务器,你可能需要特定的权限来创建或者删除 MyS ...

  7. mysql 添加唯一索引_浅谈Mysql索引

    文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 我们都知道,数据库索引可以帮助我们更加快速的找出符合的数据,但是如果不使用索引,Mysql则会从第一条开始查询 ...

  8. 烽火HG680-KB_Hi3798MV310_当贝桌面_强刷及免拆_两种方法-卡刷固件包

    烽火HG680-KB_Hi3798MV310_当贝桌面_强刷及免拆_两种方法-卡刷固件包-内有短接点及教程 特点: 1.适用于对应型号的电视盒子刷机: 2.开放原厂固件屏蔽的市场安装和u盘安装apk: ...

  9. 【20140429】两种游戏后台架构的简单总结

    先后遇到两种游戏后台架构,做个简单描述和对比 1. 在线架构 接入层长连接, 当玩家登录zone时,从cache拉取数据,并在zone的内存中保持数据拷贝,以后数据的修改直接在拷贝上进行,拷贝定时回写 ...

最新文章

  1. 成语json_推荐一份中文数据,来试试汉字、词语、成语、歇后语在线检索
  2. tomcat中的几种log catalina localhost
  3. boost::multiprecision模块mpfr_float相关的测试程序
  4. [五]RabbitMQ-客户端源码之AMQChannel
  5. 前端学习(3196):虚拟dom和真实dom
  6. 前端学习(1115):call apply bind的区别
  7. 1+2+3+n;1*1*2*n
  8. 太极图python自定义函数绘制_[宜配屋]听图阁
  9. linux nsf 扫描,linux 使用NSF 映射远程磁盘目录的实现
  10. SpringBoot中修改MySQL数据库建表方言
  11. java职称考试试题_SSM框架下的JAVA职称考试模拟系统
  12. FPGA入门程序(1)——流水灯
  13. 【推理加速】博客翻译:利用融合conv和bn的方法加速模型
  14. QT 信号与槽不在同一个线程 connect
  15. ARP协议格式和实例分析
  16. 微信相册显示服务器偷懒,微信上这样「偷懒」,比使唤男朋友还省心!
  17. Usage of Pseudocode
  18. linux环境搭建篇-redis设置密码
  19. airpods二代降噪吗_华强北 苹果二代三代 蓝牙耳机。最新款airpods 不跳电,真降噪。...
  20. 主动学习(active learning)

热门文章

  1. 洛谷 3029 [USACO11NOV]牛的阵容Cow Lineup
  2. IDEA VS 快捷键 大全
  3. 【oracle】EM打不开的问题
  4. Tomcat问题 无法启动
  5. 存储过程---角色权限叠加
  6. struts-Result- Configuration
  7. 重新启动C++Builder
  8. 如何使‘CREATE TABLE AS SELECT’能支持ORDER BY ?
  9. python 7-10梦想的度假胜地_7-8----7-10练习
  10. redhat5.5安装oracle11g的补丁包,在64位redhat5.5上面安装oracle 11g