Mysql优化

  • Post author:
  • Post category:mysql




测试指标

  1. 吞吐量

    单位时间内的事务处理数,单位tps(每秒事务数)
  2. 响应时间

    语句平均响应时间,一般截取某段时间内,95%范围内的平均时间
  3. 并发性

    线程同时执行
  4. 可扩展性

    资源增加,性能也能正比增加



测试工具



mysqlslap
mysqlslap --options

–concurrency

代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是10、50、100个并发。

–engines

代表要测试的引擎,可以有多个,用分隔符隔开。

–iterations

代表要运行这些测试多少次。

–auto-generate-sql

代表用系统自己生成的SQL脚本来测试。

–auto-generate-sql-load-type

代表要测试的是读还是写还是两者混合的(read,write,update,mixed)

–number-of-queries

代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。

–debug-info

代表要额外输出CPU以及内存的相关信息。

mysqlslap -h 192.168.1.201 -u root  --auto-generate-sql --concurrency 20 --iterations 1 --create-schema=big_data --query='select * from dict limit 1'


sysbench
  1. 测试CPU性能

2个线程寻找20000以内的素数

sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run
  1. 测试IO性能
sysbench --test=fileio --file-total-size=20G prepare
sysbench --test=fileio --file-total-size=20G --file-test-mode=rndrw run
sysbench --test=fileio --file-total-size=20G cleanup

seqwr:顺序写入

seqrewq:顺序重写

seqrd:顺序读取

rndrd:随机读取

rndwr:随机写入

rndrw:混合随机读写

  1. 测试事务性能
 sysbench --test=oltp --mysql-table-engine=innodb \
--mysql-user=root --db-driver=mysql --mysql-db=test  \
--oltp-table-size=3000 --oltp-table-name=t1  \
--mysql-socket=/var/lib/mysql/mysql.sock prepare


tpcc
  1. 工具安装
  2. tpcc_load装载数据

    命令格式:
tpcc_load [server] [DB] [user] [pass] [warehouse]

实例:

./tpcc_load 192.168.2.201 tpcc5 root "" 5

tpcc5库下创建5个仓库(仓库越多数据量越大)

  1. 模拟订单事务

    格式:
tpcc_start -h server_host -P port -d database_name

-u mysql_user -p mysql_password

-w warehouses -c connections -r warmup_time -l running_time

-w 仓库 -c 连接数 -r预热时间 -l 测试时间

实例:

# ./tpcc_start -h 192.168.1.201 -d tpcc1000 -u root -p '' -w 5 -c 5 -r 30 -l 30
5线程测试5个仓库,30秒预热,30秒测试



版权声明:本文为lxw983520原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。