千家信息网

sysbench 压测mysql数据库

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试,使用起来很方便,同时sysbench支持以下几种测试模式:1、CPU运算性能2、磁盘IO性能3、调度程序性能
千家信息网最后更新 2025年01月21日sysbench 压测mysql数据库

sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试,使用起来很方便,
同时sysbench支持以下几种测试模式:
1、CPU运算性能
2、磁盘IO性能
3、调度程序性能
4、内存分配及传输速度
5、POSIX线程性能
6、数据库性能(OLTP基准测试)
目前sysbench主要支持 mysql,drizzle,pgsql,oracle 等几种数据库。
1.
安装sysbench:
yum install epel-release

yum install sysbench -y

使用sysbench --help 查看帮助。

2.sysbench提供了很多自带压测脚本,脚本放在 /usr/share/sysbench 目录下,本文使用安装sysbench压测mysql数据库:

在准备压测的数据库上创建用户和数据库信息:
grant all privileges on *.* to sysbench identified by 'sysbench';
flush privileges;
create database sysbench_db;

a.准备压测数据:

sysbench /usr/share/sysbench/oltp_insert.lua \
--mysql-host=192.168.56.102 \
--mysql-port=3306 \
--mysql-user=sysbench \
--mysql-password='sysbench' \
--mysql-db=sysbench_db \
--db-driver=mysql \
--tables=15 \
--table-size=500000 \
--report-interval=10 \
--threads=128 \
--time=120 \
prepare


[root@my-mm sysbench]# sysbench /usr/share/sysbench/oltp_insert.lua \
> --mysql-host=192.168.56.102 \
> --mysql-port=3306 \
> --mysql-user=sysbench \
> --mysql-password='sysbench' \
> --mysql-db=sysbench_db \
> --db-driver=mysql \
> --tables=15 \
> --table-size=500000 \
> --report-interval=10 \
> --threads=128 \
> --time=120 \
> prepare
sysbench 1.0.9 (using system LuaJIT 2.0.4)

Initializing worker threads...

Creating table 'sbtest14'...
Creating table 'sbtest12'...
Creating table 'sbtest3'...
Creating table 'sbtest5'...
Creating table 'sbtest11'...
Creating table 'sbtest4'...
Creating table 'sbtest13'...
Creating table 'sbtest10'...
Creating table 'sbtest9'...
Creating table 'sbtest8'...
Creating table 'sbtest15'...
Creating table 'sbtest1'...
Creating table 'sbtest2'...
Creating table 'sbtest6'...
Creating table 'sbtest7'...
Inserting 500000 records into 'sbtest12'
Inserting 500000 records into 'sbtest11'
Inserting 500000 records into 'sbtest10'
Inserting 500000 records into 'sbtest2'
Inserting 500000 records into 'sbtest5'
Inserting 500000 records into 'sbtest8'
Inserting 500000 records into 'sbtest13'
Inserting 500000 records into 'sbtest4'
Inserting 500000 records into 'sbtest3'
Inserting 500000 records into 'sbtest7'
Inserting 500000 records into 'sbtest15'
Inserting 500000 records into 'sbtest1'
Inserting 500000 records into 'sbtest6'
Inserting 500000 records into 'sbtest9'
Inserting 500000 records into 'sbtest14'
Creating a secondary index on 'sbtest9'...
Creating a secondary index on 'sbtest11'...
Creating a secondary index on 'sbtest1'...
Creating a secondary index on 'sbtest5'...
Creating a secondary index on 'sbtest14'...
Creating a secondary index on 'sbtest6'...
Creating a secondary index on 'sbtest13'...
Creating a secondary index on 'sbtest4'...
Creating a secondary index on 'sbtest15'...
Creating a secondary index on 'sbtest8'...
Creating a secondary index on 'sbtest2'...
Creating a secondary index on 'sbtest7'...
Creating a secondary index on 'sbtest12'...
Creating a secondary index on 'sbtest3'...
Creating a secondary index on 'sbtest10'...

查看监控:


b.压测:

sysbench /usr/share/sysbench/oltp_insert.lua \
--mysql-host=192.168.56.102 \
--mysql-port=3306 \
--mysql-user=sysbench \
--mysql-password='sysbench' \
--mysql-db=sysbench_db \
--db-driver=mysql \
--tables=15 \
--table-size=500000 \
--report-interval=10 \
--threads=128 \
--time=120 \
run


查看qps:

[root@my-mm sysbench]# sysbench /usr/share/sysbench/oltp_insert.lua \
> --mysql-host=192.168.56.102 \
> --mysql-port=3306 \
> --mysql-user=sysbench \
> --mysql-password='sysbench' \
> --mysql-db=sysbench_db \
> --db-driver=mysql \
> --tables=15 \
> --table-size=500000 \
> --report-interval=10 \
> --threads=128 \
> --time=120 \
> run
sysbench 1.0.9 (using system LuaJIT 2.0.4)

Running the test with following options:
Number of threads: 128
Report intermediate results every 10 second(s)
Initializing random number generator from current time


Initializing worker threads...

Threads started!

[ 10s ] thds: 128 tps: 1475.71 qps: 1475.71 (r/w/o: 0.00/1475.71/0.00) lat (ms,95%): 164.45 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 128 tps: 895.50 qps: 895.50 (r/w/o: 0.00/895.50/0.00) lat (ms,95%): 282.25 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 128 tps: 1490.81 qps: 1490.81 (r/w/o: 0.00/1490.81/0.00) lat (ms,95%): 189.93 err/s: 0.00 reconn/s: 0.00
[ 40s ] thds: 128 tps: 1385.42 qps: 1385.42 (r/w/o: 0.00/1385.42/0.00) lat (ms,95%): 207.82 err/s: 0.00 reconn/s: 0.00
[ 50s ] thds: 128 tps: 1300.72 qps: 1300.72 (r/w/o: 0.00/1300.72/0.00) lat (ms,95%): 193.38 err/s: 0.00 reconn/s: 0.00
[ 60s ] thds: 128 tps: 2194.74 qps: 2194.74 (r/w/o: 0.00/2194.74/0.00) lat (ms,95%): 92.42 err/s: 0.00 reconn/s: 0.00
[ 70s ] thds: 128 tps: 2226.52 qps: 2226.52 (r/w/o: 0.00/2226.52/0.00) lat (ms,95%): 86.00 err/s: 0.00 reconn/s: 0.00
[ 80s ] thds: 128 tps: 1149.59 qps: 1149.59 (r/w/o: 0.00/1149.59/0.00) lat (ms,95%): 272.27 err/s: 0.00 reconn/s: 0.00
[ 90s ] thds: 128 tps: 881.20 qps: 881.20 (r/w/o: 0.00/881.20/0.00) lat (ms,95%): 320.17 err/s: 0.00 reconn/s: 0.00
[ 100s ] thds: 128 tps: 1602.52 qps: 1602.52 (r/w/o: 0.00/1602.52/0.00) lat (ms,95%): 142.39 err/s: 0.00 reconn/s: 0.00
[ 110s ] thds: 128 tps: 1722.31 qps: 1722.31 (r/w/o: 0.00/1722.31/0.00) lat (ms,95%): 158.63 err/s: 0.00 reconn/s: 0.00
[ 120s ] thds: 128 tps: 1956.95 qps: 1956.95 (r/w/o: 0.00/1956.95/0.00) lat (ms,95%): 108.68 err/s: 0.00 reconn/s: 0.00
SQL statistics:
queries performed:
read: 0
write: 182948
other: 0
total: 182948
transactions: 182948 (1522.89 per sec.)
queries: 182948 (1522.89 per sec.)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)

General statistics:
total time: 120.1302s
total number of events: 182948

Latency (ms):
min: 3.65
avg: 84.00
max: 3444.05
95th percentile: 189.93
sum: 15367235.04

Threads fairness:
events (avg/stddev): 1429.2812/12.53
execution time (avg/stddev): 120.0565/0.03


c.清理压测数据:

sysbench /usr/share/sysbench/oltp_insert.lua \
--mysql-host=192.168.56.102 \
--mysql-port=3306 \
--mysql-user=sysbench \
--mysql-password='sysbench' \
--mysql-db=sysbench_db \
--db-driver=mysql \
--tables=15 \
--table-size=500000 \
--report-interval=10 \
--threads=128 \
--time=120 \
cleanup

[root@my-mm sysbench]# sysbench /usr/share/sysbench/oltp_insert.lua \
> --mysql-host=192.168.56.102 \
> --mysql-port=3306 \
> --mysql-user=sysbench \
> --mysql-password='sysbench' \
> --mysql-db=sysbench_db \
> --db-driver=mysql \
> --tables=15 \
> --table-size=500000 \
> --report-interval=10 \
> --threads=128 \
> --time=120 \
> cleanup
sysbench 1.0.9 (using system LuaJIT 2.0.4)

Dropping table 'sbtest1'...
Dropping table 'sbtest2'...
Dropping table 'sbtest3'...
Dropping table 'sbtest4'...
Dropping table 'sbtest5'...
Dropping table 'sbtest6'...
Dropping table 'sbtest7'...
Dropping table 'sbtest8'...
Dropping table 'sbtest9'...
Dropping table 'sbtest10'...
Dropping table 'sbtest11'...
Dropping table 'sbtest12'...
Dropping table 'sbtest13'...
Dropping table 'sbtest14'...
Dropping table 'sbtest15'...

数据 数据库 性能 测试 基准 脚本 准备 支持 信息 内存 压力 同时 工具 模式 测试工具 测试系统 用户 目录 硬件 磁盘 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 应用层后端软件开发 男孩学网络技术与执法好吗 前端服务器管理软件宝塔 用什么软件编写软件开发文档 广州服务器运维服务价格 吉远网络技术服务部 甘孜州网络安全宣传片 奉贤市网络安全课堂 网络安全技术应用与管理 学生管理系统c 连接数据库 专升本网络安全专业大学 2020年网络安全大会深圳 软件开发者点数不足怎么回事 移动宽带连接外国服务器 北京东华智中能源互联网科技 linux 删库数据库 网络技术结束语怎么写 技术数据库的表数量是否有限 常州企业软件开发中心 在郑州做软件开发 吉林市网络安全和信息化委员 腾讯服务器不会保存微信聊天记录 手抄报设计图软件开发 315网络安全宣传 如何提升网络安全预警防范能力 大数据列式数据库 上海新北大数据库 广西会计软件开发 苹果手机激活连不到服务器 廊坊武夷山软件开发
0