御风灰灰
发布于 2025-01-13 / 1 阅读
0
0

Linux下存储器读写测试

介绍Linux平台对存储器的性能测试

当前平台基于Ubuntu平台进行测试

dd命令基本测试

写入测试

dd if=/dev/random of=test.bin bs=1G count=1 oflag=direct

读取测试

dd if=test.bin of=/dev/zero bs=1G count=1 iflag=direct

fio命令测试

工具安装

sudo apt-get install fio

NVME测试

测试用例

nvme-comprehensive.fio

; 顺序读取测试
[job-seq-read]
ioengine=libaio
direct=1
runtime=60
time_based
filename=/mnt/nvme/fio_test_seq_read
bs=1m
size=10G
numjobs=4
iodepth=64
name=Sequential_Read

; 顺序写入测试
[job-seq-write]
ioengine=libaio
direct=1
runtime=60
time_based
filename=/mnt/nvme/fio_test_seq_write
bs=1m
size=10G
numjobs=4
iodepth=64
name=Sequential_Write

; 随机读取测试
[job-rand-read]
ioengine=libaio
direct=1
runtime=60
time_based
filename=/mnt/nvme/fio_test_rand_read
bs=4k
size=10G
numjobs=4
iodepth=64
name=Random_Read

; 随机写入测试
[job-rand-write]
ioengine=libaio
direct=1
runtime=60
time_based
filename=/mnt/nvme/fio_test_rand_write
bs=4k
size=10G
numjobs=4
iodepth=64
name=Random_Write

执行方法

fio nvme-comprehensive.fio --output=nvme-comprehensive-result.log

TF/SD卡测试

测试用例

tf-comprehensive.fio

; 全局设置
[global]
ioengine=libaio
direct=0          ; 使用缓冲 I/O,适合文件系统测试
runtime=60
time_based
group_reporting
numjobs=1         ; 对于 TF 卡,使用单线程以减少磨损
iodepth=1         ; 使用较低的 I/O 深度以减少并发压力
filename=/mnt/sdcard/testfile  ; 使用创建的测试文件路径
size=5G           ; 测试总数据量设为 5GB

; 顺序读取测试
[job-seq-read]
stonewall
rw=read
bs=1m
name=Sequential_Read

; 顺序写入测试
[job-seq-write]
stonewall
rw=write
bs=1m
name=Sequential_Write

; 随机读取测试
[job-rand-read]
stonewall
rw=randread
bs=4k
name=Random_Read

; 随机写入测试
[job-rand-write]
stonewall
rw=randwrite
bs=4k
name=Random_Write

测试方法

fio tf-comprehensive.fio --output=tf-comprehensive-result.log

iozone

安装

sudo apt install iozone3

命令介绍

  • -a #全面测试
  • -i #指定运行于哪种模式测试。可以使用-i # -i # -i #进行多个测试
    • 0=write/rewrite
    • 1=read/re-read
    • 2=random read/random write
  • -f #指定用来测试的临时文件,测试完后会自动删除
  • -r #设置测试文件的块大小
  • -s #设置测试文件的大小,要求为物理内存的1/2,1倍,2倍
  • -I #直接IO,可排除掉缓存的影响,直接对硬盘读写

常见使用方法

iozone -a -i 0 -i 1 -i 2 -f  ./testfile -r 16m -s 4G | tee -a iozone1.log

评论