13.性能压测工具使用-sysbench

前言

SYSBENCH 是一个开源的多线程性能测试工具,广泛用于评估系统、数据库和硬件的性能。它支持多种测试模式,如 CPU、内存、磁盘 I/O 和数据库基准测试。凭借其灵活性和易用性,SYSBENCH 能帮助用户快速识别性能瓶颈,优化系统效率,是系统管理员和开发者的理想选择。
本篇博客主要介绍怎么使用 SYSBENCH 进行 DM 达梦数据库的编译测试,相应的 SYSBENCH 官方版本包需要联系达梦数据库人员进行获取。

sysbench 编译安装

目前的硬件架构主要为 ARM 以及 X86 ,不同的架构下的 sysbench 工具无法共用来着。

  • 必要插件的安装,DM 达梦数据库的安装就不再列入
## root 权限
yum -y install make automake libtool pkgconfig libaio-devel 
## 如果需要支持 MySQL 压测
yum -y install openssl-devel mysql-devel
## 如果需要支持 PostgreSQL 压测
yum -y install postgresql-devel
  • 进行环境检查并生成配置脚本
cd /home/dmdba/sysbench-master-dpi
## 删除之前遗留的 Makefile 其他的Makefile.am、Makefile.in 需要保留
chmod +x *
rm  Makefile
## 检查环境并生成配置脚本,普通用户即可
./autogen.sh
  • 开始编译
## 加入环境变量
export DM_HOME="/home/dmdba/dmdbms"
## ARM 版本编译 (DM 数据库)
./configure --without-mysql --without-pgsql --with-dm  --build=aarch64-unknown-linux-gnu

  • 需要使用 root
## 清空旧缓存
make clean
## 进行编译 make VERBOSE=2 可追踪错误信息
make && make install 

sysbench 常用介绍

  • 常用选项
选项描述默认值
–threads创建1的工作线程总数1
–events请求总数的限制。0(默认值)表示没有限制0
–time总执行时间限制,以秒为单位。0表示不限制10
–warmup-time预热时间0
–rate这个数字指定了所有线程平均每秒钟应该执行多少事件(事务)。0表示无限速率,即事件以尽可能快的速度执行0
–thread-init-timeout工作线程初始化的等待时间,单位为秒30
–thread-stack-size每个线程的堆栈大小32k
–report-interval以间隔时间为秒定期上报中间统计信息。0禁用中间报告0
–debug打印更多的调试信息off
–validate在可能的情况下对测试结果进行验证off
–verbosity详细级别(0 -只有关键消息,5 -调试)4
–percentilesysbench测量所有已处理请求的执行时间,以显示最小、平均和最大执行时间等统计信息。95
  • 命令测试帮助
## 内存帮助
sysbench memory help
  • 对应测试
lua 选项说明SQL类型SQL语句
oltp_sum_rangessum 测试sum_rangesSELECT SUM(k) FROM sbtest100 WHERE id BETWEEN ? AND ?
select_random_points、oltp_point_select随机等值查询测试
等值查询测试
point_selectsSELECT c FROM sbtest100 WHERE id=?
select_random_ranges随机范围查询测试simple_rangesSELECT c FROM sbtest100 WHERE id BETWEEN ? AND ?
oltp_insert简单插入测试inserts_ignoreINSERT IGNORE INTO sbtest100 (id, k, c, pad) VALUES (?, ?, ?, ?)
bulk_insert批量插入测试inserts_ignoreINSERT INTO sbtest (id, k, c, pad) VALUES (?, ?, ?, ?), (?, ?, ?, ?), …;
oltp_update_index带索引的更新测试index_updatesUPDATE sbtest100 SET k=k+1 WHERE id=?
oltp_update_non_index不带索引的更新测试non_index_updatesUPDATE sbtest100 SET c=? WHERE id=?
oltp_deletedelete删除测试deletesDELETE FROM sbtest100 WHERE id=?
oltp_read_only只读测试随机选择SELECT c FROM sbtest WHERE id = ?;

SELECT id, k, c, pad FROM sbtest WHERE id BETWEEN ? AND ?;

SELECT COUNT(*) FROM sbtest;

SELECT c FROM sbtest WHERE id BETWEEN ? AND ? ORDER BY c;

SELECT DISTINCT c FROM sbtest WHERE id BETWEEN ? AND ? ORDER BY c;

SELECT c FROM sbtest WHERE id BETWEEN ? AND ?;

SELECT id, c FROM sbtest WHERE id BETWEEN ? AND ? ORDER BY c;

SELECT k FROM sbtest WHERE c = ? ORDER BY k;

SELECT k FROM sbtest WHERE c BETWEEN ? AND ? ORDER BY k;
oltp_read_write读写测试随机选择"SELECT c FROM sbtest WHERE id = ?;

SELECT id, k, c, pad FROM sbtest WHERE id BETWEEN ? AND ?;

UPDATE sbtest SET k = k + 1 WHERE id = ?;

INSERT INTO sbtest (id, k, c, pad) VALUES (?, ?, ?, ?);

DELETE FROM sbtest WHERE id = ?;

sysbench 基准测试

  • CPU 性能测试
## ARM 20W  , X86 10W
sysbench --time=60 --threads=64 --report-interval=3 cpu --cpu-max-prime=10000 run  
  • 内存测试
## 32204.63 MiB/sec
sysbench --time=60 --threads=10 --events=10000000 memory --memory-block-size=8k --memory-total-size=100T --memory-access-mode=seq run

DM 基准测试

  • 数据准备
sysbench oltp_insert.lua --tables=8 --table-size=500000 --db-driver=dm --dm-db=172.16.1.163:5238 --dm-user=SYSDBA --dm-password=SYSDBA --auto-inc=off --threads=32 --time=300 --report-interval=1  prepare   
  • 插入性能测试
## report-interval 間隔多少秒打印一次
sysbench oltp_insert.lua --tables=8 --table-size=500000 --db-driver=dm --dm-db=172.16.1.163:5238 --dm-user=SYSDBA --dm-password=SYSDBA --auto-inc=off --threads=32 --time=300 --report-interval=1  run  
  • 清理数据
 ./sysbench oltp_insert.lua --tables=8 --table-size=500000 --db-driver=dm --dm-db=172.16.1.163:5238 --dm-user=SYSDBA --dm-password=SYSDBA --auto-inc=off --threads=32 --time=300 --report-interval=1  cleanup

PG 基准测试

  • 数据准备
sysbench --db-driver=pgsql --pgsql-host=172.16.1.164 --pgsql-port=5432 --pgsql-user=swuser --pgsql-password='fgTTfbIbVSO' --pgsql-db=swtest --report-interval=3 --threads=128 --db-ps-mode=disable --percentile=99 --auto_inc=on --tables=10 --table_size=500000 --time=360 oltp_insert.lua prepare   
  • 插入测试
sysbench --db-driver=pgsql --pgsql-host=172.16.1.164 --pgsql-port=5432 --pgsql-user=swuser --pgsql-password='fgTTfbIbVSO' --pgsql-db=swtest --report-interval=3 --threads=128 --db-ps-mode=disable --percentile=99 --auto_inc=on --tables=10 --table_size=500000 --time=360 oltp_insert.lua run
  • 27
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL Sysbench是一个用于测试和评估MySQL数据库性能工具。它可以模拟多种不同的场景和负载,通过执行一系列的基准测试来评估数据库性能Sysbench可以使用不同的脚本来执行各种测试任务,比如压力测试、读写测试等。例如,通过运行sysbench /usr/share/sysbench/oltp_read_write.lua脚本可以执行一个带有指定参数的OLTP读写测试。通过指定参数,如mysql-host、mysql-port、mysql-user等,可以自定义压测的目标数据库以及其他相关参数。 如果你想了解更多关于Sysbench的详细信息,你可以从MySQL官方网站上下载该工具,下载地址为:https://dev.mysql.com/downloads/benchmarks.html。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【MySQL】数据库压测神器之sysbench](https://blog.csdn.net/m0_37389157/article/details/124558122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MySQL压测工具-Sysbench](https://blog.csdn.net/cheng_jeff/article/details/120339028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值