【Mysql】硬盘性能压测(Sysbench工具)

1、IOPS和吞吐量介绍

  • IOPS(每秒输入/输出操作数):是衡量存储设备每秒能够执行的输入/输出操作的数量。对于数据库等需要频繁读写的应用程序而言,IOPS 是一个关键的性能指标。更高的 IOPS 意味着存储设备能够处理更多的读写请求,因此能够更快地响应应用程序的需求。

  • 吞吐量:指存储系统在一定时间内能够传输的数据量。它通常以每秒传输的数据量(比特/字节)来衡量。吞吐量取决于存储系统的带宽和响应时间。较高的吞吐量表示存储系统能够以更快的速度传输数据。

在数据库系统中,IOPS 和吞吐量都是非常关键的性能指标。数据库的读写操作会对存储系统的 IOPS 和吞吐量产生影响,因此优化存储性能对于提升数据库性能至关重要。

2、Sysbench工具简介

Sysbench 是一个可编写脚本的多线程基准测试工具,基于 LuaJIT的。它最常用于数据库基准测试,但也用于创建不涉及数据库服务器。它可以测试 CPU、内存、文件系统和数据库等方面的性能,并提供了多种测试模式和参数配置选项。

sysbench 的一些常见用途包括:

  1. 数据库性能测试:sysbench 可以模拟多个用户同时访问数据库,并测量数据库处理能力、响应时间等指标。

  2. CPU 和内存性能测试:sysbench 可以执行计算密集型任务和内存操作,并评估系统的计算和内存性能。

  3. 文件系统性能测试:sysbench 可以模拟文件读写操作,测试文件系统的性能和吞吐量。

  4. 线程调度性能测试:sysbench 可以模拟多线程并发执行,评估系统的线程调度性能。

3、Sysbench安装

下载地址:

Release Release 1.0.20 · akopytov/sysbench · GitHub

bash 复制代码
[root@dt1 sysbench]# tar -xzvf sysbench-1.0.20.tar.gz
[root@dt1 sysbench]# cd sysbench-1.0.20
[root@dt1 sysbench-1.0.20]# yum install m4 autoconf automake libtool mysql-devel -y
[root@dt1 sysbench-1.0.20]# ./autogen.sh
[root@dt1 sysbench-1.0.20]# ./configure
[root@dt1 sysbench-1.0.20]# make && make install
[root@dt1 sysbench-1.0.20]# sysbench --version

4、磁盘压测

bash 复制代码
#创建一个测试目录
[root@dt1 sysbench-1.0.20]# mkdir ../test
[root@dt1 sysbench-1.0.20]# cd ../test/

#创建4个文件,总共大小4G,一个块大小为16k
[root@dt1 test]# sysbench --test=fileio --file-num=4 --file-block-size=16384 --file-total-size=4g prepare
#用于运行文件 I/O 的基准测试
[root@dt1 test]# sysbench --test=fileio --file-num=4 --file-block-size=16384 --file-total-size=4G --file-test-mode=rndrw --file-extra-flags=direct --max-time=10 --max-requests=0 --file-fsync-freq=1 --num-threads=128 --report-interval=1 run

#清理创建的文件
[root@dt1 test]# sysbench --test=fileio --file-num=4 --file-block-size=16384 --file-total-size=4g cleanup

命令参数解释

1、sysbench --test=fileio --file-num=4 --file-block-size=16384 --file-total-size=4g prepare

  • --test=fileio:指定进行文件 I/O 方面的基准测试。
  • --file-num=4:设置要使用的文件数量为 4 个。
  • --file-block-size=16384:设置每个文件的块大小为 16KB。
  • --file-total-size=4g:设置所有文件的总大小为 4GB。
  • prepare:执行准备阶段,创建并初始化测试所需的文件

2、sysbench --test=fileio --file-num=4 --file-block-size=16384 --file-total-size=4G --file-test-mode=rndrw --file-extra-flags=direct --max-time=10 --max-requests=0 --file-fsync-freq=1 --num-threads=128 --report-interval=1 run

  • --test=fileio:指定进行文件 I/O 方面的基准测试。
  • --file-num=4:设置要使用的文件数量为 4 个。
  • --file-block-size=16384:设置每个文件的块大小为 16KB。
  • --file-total-size=4G:设置所有文件的总大小为 4GB。
  • --file-test-mode=rndrw:设置文件操作的模式为随机读写(random read-write)。
  • --file-extra-flags=direct:使用直接 I/O 操作而不是缓存。
  • --max-time=10:设置最长运行时间为 10 秒。
  • --max-requests=0:设置每个线程执行的请求数目,0 表示无限制。
  • --file-fsync-freq=1:设置 fsync 操作的频率为每次操作都执行。
  • --num-threads=128:设置线程数为 128。
  • --report-interval=1:设置报告输出的时间间隔为 1 秒

--file-test-mode 指定 sysbench 运行的工作负载类型,类型如下:

seqwr:顺序写入

seqrewr:顺序重写

seqrd:顺序读取

rndrd:随机读取

rndwr:随机写入

rndrw:随机读取/写入

MySQL 是一种数据库管理系统,它通常涉及随机读写而不是顺序读写,所以采用随机的类型

结果如下:

跟其他机器对比

相关推荐
秦jh_5 分钟前
【Linux】多线程(概念,控制)
linux·运维·前端
希忘auto22 分钟前
详解MySQL安装
java·mysql
yaosheng_VALVE26 分钟前
稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣
运维·spring cloud·自动化·intellij-idea·材质·1024程序员节
运维佬30 分钟前
在 MySQL 8.0 中,SSL 解密失败,在使用 SSL 加密连接时出现了问题
mysql·adb·ssl
Leo.yuan35 分钟前
数据量大Excel卡顿严重?选对报表工具提高10倍效率
数据库·数据分析·数据可视化·powerbi
Runing_WoNiu43 分钟前
MySQL与Oracle对比及区别
数据库·mysql·oracle
天道有情战天下1 小时前
mysql锁机制详解
数据库·mysql
看山还是山,看水还是。1 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
谷新龙0011 小时前
Redis运行时的10大重要指标
数据库·redis·缓存
CodingBrother1 小时前
MySQL 中单列索引与联合索引分析
数据库·mysql