安装sysbench,最新版本是0.5
yum install sysbench -y
sysbench --test=/usr/share/doc/sysbench/tests/db/oltp.lua --oltp-table-size=1000000 --mysql-table-engine=innodb --mysql-user=sysbench --mysql-password=sysbench --mysql-port=3306 --mysql-host=10.0.37.123 --mysql-db=test prepare
参数说明:
--oltp-table-size: 指定表的大小,即表的行数
--mysql-table-engine: 指定存储引擎,如myisam,innodb,heap,ndbcluster,bdb,maria,falcon,pbxt
--mysql-db: 指定在哪个数据库创建测试表,默认为sbtest库,需要提前创建好
--test: 指定Lua脚本,参数选项大部分同老版本的--test=oltp help
--db-driver: 指定驱动,默认为Mysql
--myisam-max-rows: 指定Myisam表的MAX_ROWS选项
--oltp-secondary: 测试表将使用二级索引KEY xid(ID) 替代 PRIMARY KEY (ID),innodb引擎内部为每个表创建唯一6字节的主键索引
--oltp-auto-inc: 设置id列为auto-incremental,值为on或off,默认为on
sysbench --test=/usr/share/doc/sysbench/tests/db/select.lua --oltp-table-size=1000000 --mysql-table-engine=innodb --mysql-user=sbtest --mysql-password=sbpass --mysql-port=3306 --mysql-host=192.168.70.72 --mysql-db=sbtest --max-requests=0 --max-time=120 --oltp-tables-count=1 --report-interval=10 --num-threads=8 run
参数说明:
--max-time 来指定测试时长
--oltp-tables-count 指定测试表数量
--max-requests 指定最大请求数,默认10000,0是不限制
--num-threads 指定线程数
prepare 是一个准备过程,比如测oltp需要load数据到表里
run 是真正的测试过程
cleanup 是清除过程
sysbench --test=/usr/share/doc/sysbench/tests/db/update_index.lua --oltp-table-size=1000000 --mysql-table-engine=innodb --mysql-user=sbtest --mysql-password=sbpass --mysql-port=3306 --mysql-host=192.168.70.72 --mysql-db=sbtest --max-requests=0 --max-time=120 --oltp-tables-count=1 --report-interval=10 --num_threads=8 run
sysbench --test=/usr/share/doc/sysbench/tests/db/insert.lua --oltp-table-size=1000000 --mysql-table-engine=innodb --mysql-user=sbtest --mysql-password=sbpass --mysql-port=3306 --mysql-host=192.168.70.72 --mysql-db=sbtest --max-requests=0 --max-time=120 --oltp-tables-count=1 --report-interval=10 --num_threads=8 run
8线程 | 读120s | 插入120s | 更新120s |
一台 | 578859 | 76204 | 70780 |
二台 | 531659 | 90487 | 91068 |
三台 | 459249 | 88791 | 81759 |
一台不过 haproxy |
718150 | 76268 | 69842 |
在写上,过haproxy时,一台与多台差距不大,多台对写性能影响不大。
在读上,按理来说,多台应该性能成倍上升,但从测试结果上看,没什么变化,不知道为什么,有人知道原因还请告知。