Debian分区性能测试方法
在Debian系统中,测试分区性能需借助专业工具,以下是常用工具及特点:
在Debian系统中,通过APT包管理器安装fio:
sudo apt update && sudo apt install fio -y
选择需测试的分区(如/dev/sda1),注意:测试会覆盖分区数据,建议使用空分区或临时文件(如/tmp/testfile,大小建议≥1GB)。若使用文件,需确保文件所在分区有足够空间。
创建测试脚本(如partition_test.fio),覆盖常见场景(顺序读、顺序写、随机读、随机写),示例如下:
[global]
ioengine=libaio # 使用异步I/O引擎,提升测试准确性
direct=1 # 绕过缓存,测试真实磁盘性能
runtime=60 # 测试时长(秒)
time_based # 按时间结束测试,而非数据量
size=1G # 测试数据量(若使用文件)
filename=/dev/sda1 # 测试分区路径(替换为目标分区)
# 顺序读测试
[seq_read]
rw=read
bs=1M # 块大小(1MB)
stonewall # 隔离测试场景,避免重叠
# 顺序写测试
[seq_write]
rw=write
bs=1M
stonewall
# 随机读测试(4K块大小,模拟小文件读)
[rand_read]
rw=randread
bs=4k
stonewall
# 随机写测试(4K块大小,模拟小文件写)
[rand_write]
rw=randwrite
bs=4k
stonewall
运行fio脚本,生成测试报告:
sudo fio partition_test.fio
测试完成后,fio会输出每个场景的详细性能指标(如带宽、IOPS、延迟)。
重点关注以下指标:
512MiB/s),反映分区整体传输能力;1000 IOPS),反映分区处理小文件的能力;5ms),反映分区响应速度。
例如,fio输出中的READ: bw=512MiB/s (537MB/s)表示顺序读带宽为512MB/s,READ: lat (usec)=5000表示平均延迟为5毫秒。dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct
输出中的1073741824 bytes (1.1 GB, 1.0 GiB) copied, X.X s, XX.X MB/s表示写入速度。/dev/null:dd if=/tmp/testfile of=/dev/null bs=1M count=1024 iflag=direct
输出中的XX.X MB/s表示读取速度。rm -f /tmp/testfile
测试硬盘缓存及实际读取速度:
sudo hdparm -Tt /dev/sda
输出示例:
/dev/sda:
Timing cached reads: 10000 MB in 2.00 seconds = 5000.00 MB/sec
Timing buffered disk reads: 500 MB in 3.00 seconds = 166.67 MB/sec
Timing cached reads:缓存读取速度(受内存影响);Timing buffered disk reads:实际磁盘读取速度(真实性能)。测试分区延迟(以1MB块大小为例):
sudo ioping -c 100 -b 1M /dev/sda1
输出示例:
4 KiB <<< /dev/sda1: request=1 time=5.12 ms (warmup)
4 KiB <<< /dev/sda1: request=2 time=4.89 ms
...
--- /dev/sda1 ping statistics ---
100 requests completed in 0.5 s
4 KiB read per request
min/avg/max/stddev = 4.56/4.98/5.33/0.18 ms
avg:平均延迟(如4.98 ms),反映分区响应速度。dd命令时;