sysbench-系统、数据库压力测试工具

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介:

sysbench是一款简单易用的压力测试工具,可以测试cpu,memory,fileio,mysql数据库; 

sysbench安装方法:

    默认的epel源中的sysbench是0.4版本的,现在已经到1.x版本,本主采用1.x版本

    github-->https://github.com/akopytov/sysbench

    centos安装方法:

1
2
     #curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
     #sudo yum -y install sysbench

安装完成后重要的文件:

    对数据库压力测试的文件:

    /usr/share/sysbench/bulk_insert.lua
    /usr/share/sysbench/oltp_common.lua
    /usr/share/sysbench/oltp_delete.lua    #数据库删除测试文件
    /usr/share/sysbench/oltp_insert.lua     #数据库插入测试文件
    /usr/share/sysbench/oltp_point_select.lua
    /usr/share/sysbench/oltp_read_only.lua #数据库读测试文件
    /usr/share/sysbench/oltp_read_write.lua#数据库读写测试文件
    /usr/share/sysbench/oltp_update_index.lua
    /usr/share/sysbench/oltp_update_non_index.lua
    /usr/share/sysbench/oltp_write_only.lua #数据库写测试文件
    /usr/share/sysbench/select_random_points.lua
    /usr/share/sysbench/select_random_ranges.lua
开始数据库测试:

    数据库测试分为3步:prepare(准备测试数据),run(开始测试),cleanup(清除测试数据)

    用到的相关参数:

        --db-driver=mysql 
        --mysql-host=localhost 
        --mysql-port=3306 
        --mysql-socket=/tmp/mysql.sock 
        --mysql-user=root 
        --mysql-password=123456
        --mysql-db=sysbench 
        --tables=10 
        --table-size=500000 
        --report-interval=10  
        --time=120 
        --threads=50 

    参数解析:

        --db-driver:用到的数据库类型

        --mysql-host:数据库的IP

        --mysql-port:数据库的端口

        --mysql-socket:socket的路径

        --mysql-user:数据库用户名

        --mysql-password:用户密码

        --mysql-db:数据库名字,默认为sysbench,需要提前创建创好

        --tables:生成表的个数

        --table-size:每个表的行数

        --report-interval:每隔多久在屏幕打印一次信息

        --time:压测时间

        --threads:启动多少个线程,即模拟多少个用户

准备测试数据:   

1
sysbench  /usr/share/sysbench/oltp_read_only .lua --db-driver=mysql --mysql-host=localhost --mysql-port=3306 --mysql-socket= /tmp/mysql .sock --mysql-user=root --mysql-password=123456 --mysql-db=sysbench --tables=10 --table-size=500000 --report-interval=10  -- time =120 --threads=50 prepare

压测数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#读测试
sysbench  /usr/share/sysbench/oltp_read_only .lua --db-driver=mysql --mysql-host=localhost --mysql-port=3306 --mysql-socket= /tmp/mysql .sock --mysql-user=root --mysql-password=123456 --mysql-db=sysbench --tables=10 --table-size=500000 --report-interval=10  -- time =120 --threads=50 run
#读写测试
sysbench  /usr/share/sysbench/oltp_read_write .lua --db-driver=mysql --mysql-host=localhost --mysql-port=3306 --mysql-socket= /tmp/mysql .sock --mysql-user=root --mysql-password=123456 --mysql-db=sysbench --tables=10 --table-size=500000 --report-interval=10  -- time =120 --threads=50 run
#其它诊次类推
 
#读测试结果,模拟320个用户
[ 11s ] thds: 320 tps: 242.69 qps: 4209.17 (r /w/o : 3694.35 /0 .00 /514 .83) lat (ms,95%): 1678.14 err /s : 0.00 reconn /s : 0.00
[ 21s ] thds: 320 tps: 187.49 qps: 2996.82 (r /w/o : 2621.44 /0 .00 /375 .38) lat (ms,95%): 2120.76 err /s : 0.00 reconn /s : 0.00
[ 31s ] thds: 320 tps: 229.77 qps: 3649.12 (r /w/o : 3190.18 /0 .00 /458 .94) lat (ms,95%): 2159.29 err /s : 0.00 reconn /s : 0.00
[ 41s ] thds: 320 tps: 259.54 qps: 4175.73 (r /w/o : 3656.75 /0 .00 /518 .98) lat (ms,95%): 1803.47 err /s : 0.00 reconn /s : 0.00
[ 51s ] thds: 320 tps: 276.39 qps: 4406.96 (r /w/o : 3853.68 /0 .00 /553 .28) lat (ms,95%): 1589.90 err /s : 0.00 reconn /s : 0.00
[ 61s ] thds: 320 tps: 281.21 qps: 4496.82 (r /w/o : 3934.29 /0 .00 /562 .53) lat (ms,95%): 1561.52 err /s : 0.00 reconn /s : 0.00
[ 71s ] thds: 320 tps: 276.10 qps: 4435.70 (r /w/o : 3883.80 /0 .00 /551 .90) lat (ms,95%): 1648.20 err /s : 0.00 reconn /s : 0.00
[ 81s ] thds: 320 tps: 275.19 qps: 4392.43 (r /w/o : 3841.85 /0 .00 /550 .58) lat (ms,95%): 1618.78 err /s : 0.00 reconn /s : 0.00
[ 91s ] thds: 320 tps: 280.39 qps: 4491.68 (r /w/o : 3931.19 /0 .00 /560 .48) lat (ms,95%): 1589.90 err /s : 0.00 reconn /s : 0.00
[ 101s ] thds: 320 tps: 270.71 qps: 4334.41 (r /w/o : 3792.58 /0 .00 /541 .83) lat (ms,95%): 1678.14 err /s : 0.00 reconn /s : 0.00
[ 111s ] thds: 320 tps: 256.68 qps: 4100.25 (r /w/o : 3587.18 /0 .00 /513 .07) lat (ms,95%): 1771.29 err /s : 0.00 reconn /s : 0.00
[ 121s ] thds: 320 tps: 261.12 qps: 4087.48 (r /w/o : 3578.23 /0 .00 /509 .25) lat (ms,95%): 1708.63 err /s : 0.00 reconn /s : 0.00
SQL statistics:
     queries performed:
         read :                            438242
         write:                           0
         other:                           62606
         total:                           500848
     transactions:                        31303  (258.37 per sec.)
     queries:                             500848 (4133.87 per sec.)
     ignored errors:                      0      (0.00 per sec.)
     reconnects:                          0      (0.00 per sec.)
 
General statistics:
     total  time :                          121.1541s
     total number of events:              31303
 
Latency (ms):
          min:                                124.29
          avg:                               1232.39
          max:                               3681.62
          95th percentile:                   1836.24
          sum :                            38577567.35
 
Threads fairness:
     events (avg /stddev ):           97.8219 /1 .70
     execution  time  (avg /stddev ):   120.5549 /0 .33

删除测试数据:

1
sysbench  /usr/share/sysbench/oltp_read_write .lua --db-driver=mysql --mysql-host=localhost --mysql-port=3306 --mysql-socket= /tmp/mysql .sock --mysql-user=root --mysql-password=123456 --mysql-db=sysbench --tables=10 --table-size=500000 --report-interval=10  -- time =120 --threads=50 cleanup

        本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1923795如需转载请自行联系原作者


weilovepan520

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
11月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
1131 79
|
9月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
737 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
数据采集 算法 数据管理
频标频稳比对测试系统重新定义测量边界
在上海张江实验室的超净间里,一束激光正以每秒 30 万公里的速度穿越真空腔,与原子跃迁频率进行着纳米级的较量。而在千里之外的西安高新区,一台黑色金属机箱内,SYN5609A 型频标比对测量系统正以同样的精度,为这场量子级的时间竞赛提供着基准坐标。这台看似普通的仪器,正在用双混频时差技术,将人类对时间的掌控精度推向新的维度。
|
前端开发 数据库
会议室管理系统源码(含数据库脚本)
会议室管理系统源码(含数据库脚本)
244 0
|
10月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
1981 10
|
9月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
12月前
|
人工智能 缓存 自然语言处理
别再手搓测试数据了!AE测试数据智造系统揭秘
本文介绍如何通过构建基于大语言模型的测试数据智造Agent,解决AliExpress跨境电商测试中数据构造复杂、低效的问题,推动测试效率提升与智能化转型。
别再手搓测试数据了!AE测试数据智造系统揭秘
|
12月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1563 23
|
11月前
|
SQL 监控 安全
数据库安全审计系统
Next-DBM数据库审计系统助力企业解决数据安全难题,提供统一身份管理、全方位监控、智能风险识别、完整审计追溯及精细化权限管控,有效防范数据泄露与内部威胁,保障企业核心资产安全,满足合规要求,提升运维效率。
|
Java 数据库
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
291 10