近期我更换了我的群晖 NAS 里的硬盘,在选择存储空间的文件系统时不知该选 ext4 还是 Btrfs,我主要考量的是磁盘的读写性能,于是就写了个脚本测试了下我的群晖 NAS 在两种文件系统下的磁盘读写速度,顺便也测试了下其在不同 RAID 类型下的磁盘读写速度。
[ext4] vs [Btrfs] vs [Btrfs + 校验] vs [Btrfs + 校验 + 压缩]:
ext4 在不同 RAID 类型下的对比:
我的群晖 NAS 是 2013 年款的 DS1513+,五盘位,CPU 是 Intel Atom D2700 Dual Core 2.13 GHz,内存扩充到了 4 GiB,群晖系统版本是 DSM 6.2。
测试使用的硬盘是四个 HGST 昱科的 Deskstar NAS 充氦硬盘(HGST Deskstar NAS 3.5" 10TB 7200 RPM 256MB Cache),型号是 HDN721010ALE604,容量是 10 TB,转速是 7200 RPM,缓存是 256 MiB,网上这款硬盘的评测。
synology_disk_benchmark.sh
和 xfio.conf
到 NAS 上。chmod +x synology_disk_benchmark.sh
sudo ./synology_disk_benchmark.sh 测试名
测试名.md
。sudo hdparm -Tt $device
# 生成一个 1 GiB 大小的随机数据测试文件
head -c 1G </dev/urandom >test
# 清除缓存
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches > /dev/null
# 从 test 文件读取,每次读取 1 MiB 数据,读取 1024 次,共读取 1 GiB 数据
dd if=test of=/dev/null bs=1M count=1024
# 写入 0 到 test 文件,每次写入 x 数据,写入 y 次,共写入 x*y 数据( dsync 不缓存)
dd if=/dev/zero of=test bs=$x count=$y oflag=dsync
分别测试了 bs 读写块大小为 1 GiB、128 MiB、1 MiB、128 KiB、4 KiB、512 bytes 时的写入速度。
fio xfio.conf
fio 测试使用的配置文件:xfio.conf
进行了以下测试:
注:群晖内置了 fio 命令。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.