架构采用:
压测参考:
Atlas与直连DB性能比较
利用sysbench测试通过Atlas转发SQL请求和直连DB发送SQL请求这两种情况下, Atlas和Mysql系统的两项数据指标:QPS和每条SQL请求平均处理时间。 通过sysbench发送三类SQL请求:select,update,insert。 每类请求都是单独发送。具体的操作过程如下所示:
执行下面的命令测试sysbench连接Atlas
sysbench --test=oltp \
--num-threads=1 \
--max-requests=80000 \
--oltp-test-mode=nontrx \
--db-driver=mysql \
--mysql-db=my_db \
--mysql-host=192.168.0.12 \
--mysql-port=1234 \
--mysql-user=buck \
--mysql-password=buck \
--oltp-nontrx-mode=select \
--db-ps-mode=disable \
prepare (run,cleanup)
上述命令是sysbench执行80000次随机select操作,这80000次操作都是非事务的。 通过修改 --oltp-nontrx-mode
选项,可以执行update和insert操作。 通过修改 --num-threads
参数,可以调整并发测试线程的个数。
sysbench创建表的语句是:
CREATE TABLE sbtest (
id int(10) unsigned NOT NULL AUTO_INCREMENT, k int(10) unsigned NOT NULL DEFAULT '0', c char(120) NOT NULL DEFAULT '', pad char(60) NOT NULL DEFAULT '', PRIMARY KEY (id), KEY k (k) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1
执行下面的命令测试直连DB:
sysbench --test=oltp \
--num-threads=1 \
--max-requests=80000 \
--oltp-test-mode=nontrx \
--db-driver=mysql \
--mysql-db=my_db \
--mysql-host=192.168.0.13 \
--mysql-port=3306 \
--mysql-user=buck \
--mysql-password=buck \
--oltp-nontrx-mode=select \
--db-ps-mode=disable \
prepare (run,cleanup)
测试读写分离的时候:
打开日志 观察日志 不能用SYSBENCH,这个默认是事务的形式,读写都在M上,用语句测试 SELETC 会在重库,insert ,update,delete 会在主库
其他测试请参考官网文档,一下是官网的测试链接
参考官网:
https://github.com/Qihoo360/Atlas/wiki/Atlas%E7%9A%84%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95