MySQL性能测试之SysBench
一、SysBench安装
1、mac安装命令:(其他系统安装对应的命令即可,不影响后面的使用)
brew install sysbench
2、查看是否安装成功;
sysbench --version
附:
(1)执行一些简单的 SysBench 命令,以确保它能够正常运行。例如,你可以运行一个 CPU 测试:
bashCopy codesysbench cpu --cpu-max-prime=20000 run
或者运行一个内存测试:
bashCopy codesysbench memory --memory-block-size=1M --memory-total-size=10G run
3、查看命令使用
sysbench --help
二、MySQL吞吐量测试
PS:对应参数填入正确的值(使用时可以先粘贴到文本中修改参数),具体的参数名成可能会因为版本问题稍有变化,对应修改即可。更多参数可查看详细文档。
1、准备测试数据:
注:需要先准备测试数据
sysbench /usr/local/share/sysbench/oltp_read_write.lua --db-driver=mysql --mysql-host=10.0.1.11 --mysql-port=30086 --mysql-user=root --mysql-password=123 --mysql-db=room --tables=10 --table-size=50000 --threads=1 prepare
参数解释:
命令使用了 sysbench
,一个用于数据库基准测试的工具,特别是针对 MySQL。
-
sysbench
:命令本身。 -
/usr/local/share/sysbench/oltp_read_write.lua
:指定 sysbench 将用于基准测试的 Lua 脚本。在这种情况下,它是oltp_read_write.lua
脚本,专为包含读写操作混合的 OLTP(在线事务处理)工作负载而设计。 -
--db-driver=mysql
:指定数据库驱动程序,这里是 MySQL。 -
--mysql-host=10.0.11
:指定 MySQL 服务器的主机地址为10.0.1.11
。 -
--mysql-port=30086
:指定 MySQL 服务器的端口号为30086
。 -
--mysql-user=root
:指定连接到 MySQL 的用户名为root
。 -
--mysql-password=123
:指定连接到 MySQL 的密码为123
。 -
--mysql-db=room
:指定要执行基准测试的 MySQL 数据库名称为room
。 -
--tables=10
:指定要创建的表的数量为10
。 -
--table-size=50000
:指定每个表的大小为50000
。 -
--threads=1
:指定用于执行基准测试的线程数为1
。 -
prepare
:指定运行的操作是准备阶段,用于初始化数据库和表格以进行后续的基准测试。
2、开始测试
注:开始测试,运行结束会有结果生成。(线程数一般设置高点,可以100以上)
sysbench /usr/local/share/sysbench/oltp_read_write.lua --db-driver=mysql --mysql-host=10.0.1.11 --mysql-port=30086 --mysql-user=root --mysql-password=123 --mysql-db=room --percentile=80 --max-requests=0 --threads=101 --time=60 run
参数说明:
使用 sysbench
工具进行数据库基准测试:
-
sysbench
:命令本身。 -
/usr/local/share/sysbench/oltp_read_write.lua
:指定 sysbench 将用于基准测试的 Lua 脚本。在这种情况下,它是oltp_read_write.lua
脚本,专为包含读写操作混合的 OLTP(在线事务处理)工作负载而设计。 -
--db-driver=mysql
:指定数据库驱动程序,这里是 MySQL。 -
--mysql-host=10.0.1.11
:指定 MySQL 服务器的主机地址为10.0.1.11
。 -
--mysql-port=30086
:指定 MySQL 服务器的端口号为30086
。 -
--mysql-user=root
:指定连接到 MySQL 的用户名为root
。 -
--mysql-password=123
:指定连接到 MySQL 的密码为123
。 -
--mysql-db=room
:指定要执行基准测试的 MySQL 数据库名称为room
。 -
--percentile=80
:读写比例为8:2。 -
--max-requests=0
:指定在测试运行期间的最大请求数。在这里,设置为0
表示不限制最大请求数。 -
--threads=101
:指定用于执行基准测试的线程数为101
。 -
--time=60
:指定测试运行的时间,这里设置为60
秒。 -
run
:指定运行的操作是执行基准测试。
3、结果分析
QPS计算:
在 SQL 统计中,查询总数为 49820,测试总时间为 60.0476 秒。使用以下公式计算 QPS:
QPS = 总查询数 / 测试总时间
= 277425 / 60.2574
≈ 4585
SysBench 测试的 QPS 大约是 829.58。