Linux 中怎么使用 Fio 测试不同块大小的磁盘吞吐

落伟同学_1080

落伟同学_1080

2026-10-29

833人浏览

原创

测试不同块大小对磁盘吞吐的影响需控制变量,用direct=1和裸设备排除缓存与文件系统干扰,固定iodepth、numjobs等参数仅变bs,顺序读写更准确,典型bs为4K、64K、1M,结果重点对比bw值变化趋势。

linux 中怎么使用 fio 测试不同块大小的磁盘吞吐

测试不同块大小对磁盘吞吐的影响,关键在于控制变量、合理设置 bs(block size)并保持其他参数稳定。Fio 不会自动遍历多个块大小,需手动调整或通过脚本批量执行。

明确测试目标:吞吐量 vs 块大小的关系

吞吐量(单位:MB/s 或 MiB/s)反映的是单位时间内传输的数据总量。它通常随块大小增大而上升,尤其在顺序读写中更明显;但到一定阈值后会趋于平稳甚至下降(受控制器、总线或驱动限制)。测试时应避开缓存干扰,聚焦真实设备能力:

  • 用 direct=1 绕过页缓存,确保数据直通磁盘
  • 用裸设备(如 /dev/sdb)而非文件系统路径,排除文件系统开销和元数据影响
  • 固定 iodepth、numjobs、runtime 和 rw 模式,只让 bs 变化
  • 顺序读写更适合测吞吐,推荐 rw=read 或 rw=write,避免随机模式引入寻址开销

常用块大小组合与对应命令示例

典型块大小覆盖常见场景:4K(小文件IOPS)、64K(数据库日志)、1M(大文件备份/视频流)。以下为顺序读测试,可依需替换 rw=write:

  • 4K 块大小(侧重IOPS,吞吐通常较低):
    fio -name=thr-4k -filename=/dev/sdb -rw=read -bs=4k -direct=1 -iodepth=64 -numjobs=4 -runtime=60 -group_reporting
  • 64K 块大小(平衡型,常见于OLTP):
    fio -name=thr-64k -filename=/dev/sdb -rw=read -bs=64k -direct=1 -iodepth=64 -numjobs=4 -runtime=60 -group_reporting
  • 1M 块大小(最大化吞吐,接近理论带宽):
    fio -name=thr-1m -filename=/dev/sdb -rw=read -bs=1M -direct=1 -iodepth=64 -numjobs=4 -runtime=60 -group_reporting

结果解读重点看吞吐行和稳定性

Fio 输出中,关注每组测试末尾类似这样的字段:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
read : io=3572MiB, bw=59533KiB/s, iops=14883, runt= 60001msec
  • bw=xxxKiB/s 或 bw=xxMiB/s 是核心吞吐指标,直接对比不同 bs 下的数值变化趋势
  • 观察 runt 是否接近设定的 runtime,若显著偏短,说明 I/O 提前完成,可能 size 不足(建议加 -size=10G 或更大,避免因空间耗尽中断)
  • 延迟(lat)值在此类吞吐测试中次要,但若 clat 平均值突然跳升(如从几百微秒飙到毫秒级),可能提示设备在大块下响应异常,需检查硬件或队列深度是否过高

进阶建议:用配置文件或循环脚本批量跑

手动改命令易出错,推荐用简单 Bash 循环统一管理:

for bs in 4k 64k 1M; do
  echo "=== Testing bs=$bs ==="
  fio -name="thr-$bs" -filename=/dev/sdb -rw=read -bs=$bs -direct=1 \
      -iodepth=64 -numjobs=4 -size=10G -runtime=60 -group_reporting
done

或写成 Fio 配置文件(如 throughput.fio),用 [global] 统一基础参数,再为每个块大小建独立 job 段,便于复现和归档。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux linux系统

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3252

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1076

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

949

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

494

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2976

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5592

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

867

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习