VPS建站
  • WordPress教程
  • 建站百科
  • 关于Nick
VPS建站
让每个人都有自己的网站
  1. 首页
  2. VPS百科
  3. 正文

使用 FIO 测试 VPS 磁盘 IO 性能:安装教程与结果解读

2026年10月19日 28点热度 0人点赞 0条评论

在选择 VPS 时,除了 CPU、内存和网络带宽,磁盘性能也是影响服务器运行效率的重要因素。对于运行 WordPress、数据库、网站程序或其他应用的用户来说,磁盘读写速度、每秒读写操作次数以及 I/O 延迟,都可能影响实际使用体验。

我们今天就来介绍下怎么用 FIO 来对磁盘性能进行测试。

FIO 是什么?

FIO(Flexible I/O Tester)是一款用于测试存储设备 I/O 性能的工具,支持 Linux 等多种操作系统。它可以通过设置读写比例、数据块大小、并发任务数和测试时长,模拟不同的磁盘访问场景。

与只关注连续读写速度的简单测速工具不同,FIO 不仅可以测试磁盘的顺序读写性能,还能测试随机读写、IOPS 和 I/O 延迟。这些指标有助于从不同角度评估 VPS 的存储性能。

例如,顺序读写测试适合观察大文件传输时的吞吐能力;随机读写测试则更适合分析数据库、网站缓存等涉及大量小块数据访问的场景。不过,FIO 的测试结果会受到测试参数、虚拟化方式、底层存储设备和服务器负载等因素影响,因此不同测试条件下的数据不能直接进行简单比较。

如果你还想测试除了磁盘性能之外的性能,可以选择其他测试脚本。

如何使用 FIO 测试 VPS 磁盘性能和解读结果

我们现在在一台 VMRack 的 VPS 上安装 FIO,看看它的磁盘性能怎么样。通过随机读写和顺序读写两组测试,可以分别观察磁盘处理小块 I/O 请求的能力,以及连续读写大文件时的吞吐表现。

安装 FIO 并检查磁盘空间

以 Ubuntu 或 Debian 系统为例,通过 SSH 登录 VPS 后,执行以下命令安装 FIO:

apt update && apt install fio -y

安装完成后,查看版本号:

fio --version

接下来,检查磁盘容量和文件系统:

df -hT /
df -hT /tmp

本次测试环境的根目录和 /tmp 均挂载在 /dev/vda1 上,文件系统为 ext4,磁盘容量约为 48 GB,已使用约 17 GB,剩余约 31 GB。因此,可以在 /root 目录下创建专用测试文件。

需要注意,测试位置应当确实位于要检查的磁盘上。如果目录使用的是 tmpfs 等内存文件系统,测试结果就不能直接代表实际磁盘性能。

测试 4K 随机读写性能

随机读写测试会以非连续的方式访问数据,适合观察磁盘处理小块 I/O 请求时的表现。对于数据库、网站程序等存在较多小块读写操作的应用,这类指标具有一定参考价值。

执行以下命令:

fio --name=disk-test \
    --filename=/root/fio-test \
    --size=1G \
    --rw=randrw \
    --rwmixread=70 \
    --bs=4k \
    --direct=1 \
    --ioengine=libaio \
    --iodepth=1 \
    --numjobs=1 \
    --runtime=30 \
    --time_based \
    --group_reporting

这条命令会使用 1 GiB 的测试文件,以 4 KiB 为数据块大小,进行持续约 30 秒的随机混合读写测试。其中,--rwmixread=70 表示读取请求比例设为 70%,写入请求比例设为 30%;--iodepth=1 和 --numjobs=1 则表示使用单个任务和较低队列深度。

本次测试得到以下结果:

CIO 4K 测试

这些数据反映了当前 VPS 在指定参数下的随机读写表现。由于测试使用的是 4 KiB 小数据块,带宽相对较低并不意外,不能直接拿它与大文件顺序读写的速度比较。

测试磁盘顺序读写速度

随机读写之外,还可以使用 FIO 测试连续读写大文件时的性能。顺序读写更适合观察大文件传输、备份和文件复制等场景下的吞吐能力。

本次测试将数据块大小调整为 1 MiB,分别进行顺序读取和顺序写入。

顺序读取命令:

fio --name=seqread \
    --filename=/root/fio-test \
    --size=1G \
    --rw=read \
    --bs=1M \
    --direct=1 \
    --ioengine=libaio \
    --iodepth=1 \
    --numjobs=1 \
    --runtime=30 \
    --time_based \
    --group_reporting

实测结果如下:

FIO顺序读取测试

顺序写入命令:

fio --name=seqwrite \
    --filename=/root/fio-test \
    --size=1G \
    --rw=write \
    --bs=1M \
    --direct=1 \
    --ioengine=libaio \
    --iodepth=1 \
    --numjobs=1 \
    --runtime=30 \
    --time_based \
    --group_reporting

实测结果如下:

FIO顺序写入测试

从本次结果来看,顺序读取带宽约为 456 MiB/s,顺序写入带宽约为 464 MiB/s,两者比较接近。这代表该 VPS 在当前测试参数下具有这样的连续读写吞吐表现,但不能据此推断所有业务负载下都能达到相同速度。

要看懂这个结果,主要看 IOPS、BW 和 Latency 这 3 个指标。

IOPS:每秒输入输出操作次数

IOPS 是 Input/Output Operations Per Second 的缩写,表示每秒完成的 I/O 操作次数。通常情况下,在数据块大小和其他测试条件相同的前提下,IOPS 越高,说明存储系统处理小块读写请求的能力越强。

本次 4K 随机测试的读取 IOPS 约为 1,750,写入 IOPS 约为 750。顺序读写测试的 IOPS 则分别约为 456 和 464。由于两组测试使用的数据块大小不同,不能只比较 IOPS 数字来判断哪一种模式下的磁盘性能更好。

BW:磁盘读写带宽

BW 是 Bandwidth 的缩写,表示单位时间内完成的数据传输量。随机测试中的读取带宽约为 7,001 KiB/s,顺序读取带宽则约为 456 MiB/s。

两者差异主要与数据块大小和访问模式有关。4K 随机测试侧重小块 I/O 请求,而 1M 顺序测试更侧重连续数据传输,因此应当在相同测试条件下比较带宽,而不是直接比较两种模式的数字。

Latency:I/O 延迟

延迟表示 I/O 请求从提交到完成所经历的时间。FIO 输出中的 lat 是总延迟,clat 是完成延迟。平均延迟可以帮助了解整体表现,而 P99 延迟则用于观察较慢请求的情况。

例如,本次顺序读取的平均总延迟约为 2.19 ms,P99 完成延迟约为 25.56 ms;顺序写入的平均总延迟约为 2.15 ms,P99 完成延迟约为 42.21 ms。这说明平均值并不能反映每一次请求的耗时,少量较慢的请求也会影响实际应用体验。

FIO 测试 VPS 磁盘性能需要注意什么?

1. 不要只看一次测试结果

VPS 的测试成绩可能受到宿主机负载和底层存储状态影响。建议在相近条件下多测几次,避免仅凭一次结果判断磁盘性能。

2. 测试文件大小要合理

测试文件太小可能无法充分反映持续读写性能,太大则会占用较多磁盘空间。普通 VPS 用户可以先使用 1 GiB 测试文件,再根据实际情况调整。

3. 避开业务高峰期

FIO 会增加磁盘 I/O 负载,可能影响网站、数据库等服务。生产环境建议在业务低峰期测试,并避免随意提高并发数和测试时长。

4. 测试结果不等于真实业务表现

FIO 反映的是特定参数下的磁盘性能。网站实际运行速度还会受到 CPU、内存、网络和程序效率等因素影响,因此需要结合其他指标综合判断。

总结

FIO 是一款功能灵活的磁盘 I/O 测试工具,可以帮助 VPS 用户测试顺序读写、随机读写、IOPS 和延迟等关键指标。通过统一测试参数,用户可以对不同服务器的存储性能进行更有参考价值的比较。

在实际选购 VPS 时,如果主要运行网站或数据库,建议除了关注顺序读写速度,也要留意 4K 随机读写能力和 I/O 延迟。同时,应结合 CPU、内存、网络表现及实际应用需求综合判断,避免只依据单一测试数据作出决定。

标签: 暂无
最后更新:2026年10月19日

Nick

多年网站运营经验,希望能帮到你

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • FIO 是什么?
  • 如何使用 FIO 测试 VPS 磁盘性能和解读结果
    • 安装 FIO 并检查磁盘空间
    • 测试 4K 随机读写性能
    • 测试磁盘顺序读写速度
  • FIO 测试 VPS 磁盘性能需要注意什么?
  • 总结
VPS
CDN