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

结果如下:

跟其他机器对比

相关推荐
数据龙傲天3 分钟前
1688商品API接口:电商数据自动化的新引擎
java·大数据·sql·mysql
长天一色3 分钟前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
醉颜凉17 分钟前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
engineer-gxd38 分钟前
MySQL 表的操作
mysql
QMCY_jason41 分钟前
Ubuntu 安装RUST
linux·ubuntu·rust
cyt涛44 分钟前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
慕雪华年1 小时前
【WSL】wsl中ubuntu无法通过useradd添加用户
linux·ubuntu·elasticsearch
苦逼IT运维1 小时前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
前端张三1 小时前
Mac 电脑pink 后端ip地址进行本地联调
服务器·tcp/ip·macos
第六五1 小时前
ubuntu命令行连接wifi
服务器·ubuntu