PVE 黑群晖场景下,各种姿势的存储方式性能对比

2023-10-24 10:51:25 +08:00
 sadfQED2

背景: https://www.v2ex.com/t/983981

为了找到问题根本,我耗时两天,进行了各种磁盘性能测试。

省流总结:随便什么姿势,随便选一个就行,性能区别不大(我主板只有一个 SATA 控制器,没测直通控制器,但是按网上说的,区别也不大)

设备:

物理机:CPU:D1581 内存:128G 2133 MHz ECC 磁盘:3T HDD 7200 转 垂直盘 * 2

虚拟机: 4 核 CPU 8G 内存

系统:arpl+DSM7.2.1

首先,我采用最普遍的方式,PVE 把 2 块磁盘全盘映射到虚拟机,然后进行测试(由于磁盘测试耗时实在是太长了,因此下面所有测试都只跑了 4K 随机读取性能):

RAID 文件系统 数据完整性校验 压缩 读取性能
RAID1 Ext4 不支持 不支持 3757KiB/s
RAID1 Btrfs 开启 开启 3692KiB/s
RAID1 Btrfs 开启 不开启 3752KiB/s
RAID1 Btrfs 不开启 不开启 3798KiB/s
RAID0 Ext4 不支持 不支持 3947KiB/s

这个结果可以说明好几个问题:

1 、btrfs 和 ext4 性能差异不大

2 、btrfs 开不开群晖的压缩(我不知道他用的哪种算法),开不开完整校验,性能差距不大

3 、群晖中,Raid0 和 Raid1 都能够优化磁盘读取性能,都接近 2N 的速度

接着,为了做对照,同样的宿主机下,把同样的 2 块磁盘通过全盘映射的方式挂到 debian 系统下面测试,这里我偷懒了,没配 RAID ,只挂了一块盘,测试

RAID 文件系统 数据完整性校验 压缩 读取性能
Ext4 不支持 不支持 2142KiB/s

这个测试数据基本说明了群晖 Raid0 和 Raid1 确实提升了磁盘读取速度。

到这里,我原帖 Copy 速度为啥跑不上去的根源基本上找到了。但是!我还有一个疑问,那就是我第一个测试结果,我的磁盘是怎么跑到 400Mib/s 的?我当时绝对跑出那个速度了,但是后续为啥复现不出来了呢?

我仔细回忆了当时的测试步骤,当时应该是刚刚装好系统,当时是 PVE 使用 ZFS 建的磁盘组,然后建了一个虚拟磁盘给虚拟机,当时想着群晖装 fio 不方便,就直接拿 Debian 测试了,想着测磁盘性能,应该和操作系统没关系。

于是又进行测试

操作系统 宿主机文件系统 宿主机压缩 虚拟机文件系统 读取性能
debian ZFS lz4 ashift 12 Ext4 61.5MiB/s
debian ZFS lz4 ashift 9 Ext4 439MiB/s
DSM ZFS lz4 ashift 9 Ext4 54.7MiB/s
DSM ZFS lz4 ashift 9 Btrfs 53.1MiB/s
DSM ZFS lz4 ashift 9 Ext4 On Raid0 64.4MiB/s

这里也能看出一个问题,宿主机使用阵列后,虚拟机再组阵列就不能达到 2N 的速度了

到这里,400+的读取速度复现出来了。我盲猜一波,造成这种问题的原因应该是 Fio 写入的测试数据都是重复的值,ZFS 开启压缩算法后直接给去重了,读取性能约等于解压性能。

但是,我还有一点纳闷,DSM 在 ZFS 虚拟盘的场景下,读取性能还是不如 Debian ,Debian 能跑到 400+,群晖才 50+,原因未知,有请大佬分析。

顺带一问,在 ZFS 开启压缩后,怎么能够真实的测试出磁盘读取性能呢?用 FIO 测出来的应该不是真实的了

1090 次点击
所在节点    NAS
1 条回复
makaflow
199 天前
pve8 了,依旧有磁盘性能问题,然后我就火速换回 esxi8 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/984816

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX