以下测试基于win7内安装的vbox虚机内进行。
vbox-vm挂载了7.2k disk作为本地系统盘,挂载了ssd 8G空间作为mount /mnt/data /dev/sdb
今天顺便了做个一个简单的小测试,在此记录。
此结果仅代表我自己的笔记本硬盘性能情况。
fio命令使用类似以下的命令测得,具体你自己改吧
fio -filename=/tmp/test -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=1M -size=20G -numjobs=50 -runtime=60 -group_reporting -name=test
结果如下:
测试命令 | 硬盘类型 | 方式 | 块大小 | 带宽 | IOPS |
FIO | SSD | seq_write | 1M | 251MiB/s | 251 |
FIO | SSD | seq_read | 1M | 201MiB/s | 200 |
FIO | SSD | randread | 4k | 75.5MiB/s | 19.3k |
FIO | SSD | randwrite | 4k | 2.76MiB/s | 707 |
FIO | 7.2K Disk | seq_write | 1M | 79.4MiB/s | 79 |
FIO | 7.2K Disk | seq_read | 1M | 211MiB/s | 211 |
FIO | 7.2K Disk | randread | 4k | 2.10MiB/s | 538 |
FIO | 7.2K Disk | randwrite | 4k | 3.28MiB/s | 839 |
同时进行了dd命令测试
测试命令如下:dd if=/dev/zero of=/tmp/abc bs=1M count=7000 conv=fsync
测试结果如下:
测试命令 | 硬盘类型 | 方式 | 块大小 | 带宽 |
dd | SSD | seq_write | 1M | 210 MB/s |
dd | SSD | seq_read | 1M | 255 MB/s |
dd | 7.2K Disk | seq_write | 1M | 93.0 MB/s |
dd | 7.2K Disk | seq_read | 1M | 75.8 MB/s |
顺便回顾了一下dd的写参数:
conv=fsync man手册解释Synchronize output data and metadata just before finishing. This forces a physical write of output data and metadata,
中文解释:dd完成前同步数据和元数据
oflag=dsync man手册解释Use synchronized I/O for data. For the output file, this forces a physical write of output data on each write.
中文解释:每一次写都得等到这一次写写到了磁盘才进行下一个写,类似数据库操作,比较慢。
oflag=sync,跟oflag=dsync类似,只是多了同步元数据。