我最近安装了一个新磁盘并在其上创建了一个 zpool:
/# zpool create morez /dev/sdb
Run Code Online (Sandbox Code Playgroud)
使用了一段时间后,我发现它很慢:
/morez# fio --name rw --rw rw --size 10G
read: IOPS=19.6k, BW=76.6MiB/s (80.3MB/s)(5120MiB/66834msec)
write: IOPS=19.6k, BW=76.6MiB/s (80.3MB/s)(5120MiB/66834msec)
Run Code Online (Sandbox Code Playgroud)
这个测试与我的实际用例非常相似。我正在从磁盘读取中等数量(~10k)的图像(每个~2 MiB)。当磁盘大部分为空时,它们是一次性写入的,所以我不希望它们被碎片化。
为了比较,我测试了 ext4:
/# gdisk /dev/sdb
...
/# mkfs.ext4 -f /dev/sdb1 && mount /dev/sdb1 /mnt && cd /mnt
/mnt# fio --name rw --rw rw --size 10G
read: IOPS=48.3k, BW=189MiB/s (198MB/s)(5120MiB/27135msec)
write: IOPS=48.3k, BW=189MiB/s (198MB/s)(5120MiB/27135msec)
Run Code Online (Sandbox Code Playgroud)
和 btrfs:
/# mkfs.btrfs -f /dev/sdb1 && mount /dev/sdb1 /mnt && cd /mnt
/mnt# fio --name rw --rw rw --size …Run Code Online (Sandbox Code Playgroud)