【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 是一种数据库管理系统,它通常涉及随机读写而不是顺序读写,所以采用随机的类型

结果如下:

跟其他机器对比

相关推荐
Christal_pyy13 分钟前
树莓派4基于Debian GNU/Linux 12 (Bookworm)添加多个静态ipv4网络
linux·网络·debian
余衫马43 分钟前
CentOS7 离线安装 Postgresql 指南
数据库·postgresql
csbDD1 小时前
2025年网络安全(黑客技术)三个月自学手册
linux·网络·python·安全·web安全
E___V___E1 小时前
MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 2
数据库·笔记·mysql
李狗蛋儿啊1 小时前
zero自动化框架搭建---Git安装详解
运维·git·自动化
m0_748254882 小时前
mysql之如何获知版本
数据库·mysql
小金的学习笔记2 小时前
如何在本地和服务器新建mysql用户和密码
运维·服务器·mysql
s_fox_2 小时前
nginx ngx_http_module(7) 指令详解
运维·nginx·http
EasyNVR2 小时前
EasyRTC智能硬件:实时畅联、沉浸互动、消音护航
运维·服务器·网络·安全·音视频·webrtc·p2p
mikey棒棒棒2 小时前
Redis——优惠券秒杀问题(分布式id、一人多单超卖、乐悲锁、CAS、分布式锁、Redisson)
数据库·redis·lua·redisson·watchdog·cas·并发锁