在 EC2 上运行 XFS 是否有可衡量的好处

在 EC2 上运行 XFS 是否有可衡量的好处

我正在考虑创建一个 PostgreSQL 数据库映像(在 Amazon EC2 上运行),并且我听说了有关 XFS 的好评。

然而,由于最终你在 VM 中运行时,EC2 上的 XFS 增益可能不如在准系统上那么大。

我会看到 EC2 上的 XFS 有显著的改进吗?

答案1

不,我不这么认为。

使用 XFS 不会让您失去任何东西,但也不会让您获得太多好处,因为您很可能受到 EC2 的限制。(这更多的是一种观点,而不是事实。)

另一方面:我尽可能地使用 XFS。

答案2

我恰好正在14393.1770KVM qemu-2.9.1-2Fedora 26 x86_64上的 Windows 10 LTSB 1607 VM 上对存储解决方案进行基准测试4.13.11-200

长话短说,这在很大程度上取决于您的环境,但对我来说,它比 ZFS 更快。我不确定亚马逊对 EC2 做了哪些优化,但它也基于 RHEL,而 RHEL 又基于 Fedora,所以希望我的测试环境足够相似,可以进行适当的比较。RHEL/Fedora 团队维护 XFS,它是他们发行版的默认文件系统 - 在进行这些基准测试后,我可以理解为什么...

这是一篇优秀的学术论文,其中包含更多基准测试,比较了加州大学伯克利分校的 XFS 与 EXT3 和 EXT4:

https://people.eecs.berkeley.edu/~kubitron/cs262/handouts/papers/hellwig.pdf

TL;DR --- 如果您想要基准的样本:

计算机是 SM x9spu-f Xeon E3-1230 v2,根文件系统为 1TB Seagate Enterprise 硬盘。存储基础设施是两个 HGST he8 8TB 氦气填充硬盘,带有一个 800GB Intel DC S3700,其配置超出规格约 60%。硬盘是第二代 fdisk 分区,4k 对齐(4096 块大小)。

我一开始将 OpenZFS 版本5000设置为sync=always。我喜欢它,它方便易用,功能强大,但它似乎占用了大量 CPU 资源。尽管 VM 是唯一启动的 VM,但使用起来感觉很慢。我将 ARC 限制为最大 4GB,这似乎不会对我的基准测试中的吞吐量产生负面影响。
以下是这些测试中的一个例子:

Fedora 26 KVM Windows 10 VM 中的 HDTunePro ZFS 写入基准测试 Fedora 26 KVM Windows 10 VM 中的 HDTunePro ZFS 读取基准测试 Fedora 26 KVM Windows 10 VM 中的 CrystalDiskMark ZFS 基准测试

然后我切换到 XFS4.10.0-1和 bcache 1.0.8-8,同样是 SSD 过度配置cache_mode writeback。速度似乎确实加快了不少。虚拟机感觉非常“灵敏”。在我的测试中,RAM 从未超过 4G。

另外:按速度降序排列,与 raw、qed 和 vmdk 相比,最好的格式是 qcow2(至少对于此版本的 KVM 而言)。

Fedora 26 KVM Windows 10 VM 中的 HDTunePro XFS 写入基准测试 Fedora 26 KVM Windows 10 VM 中的 HDTunePro XFS 读取基准测试 Fedora 26 KVM Windows 10 VM 中的 CrystalDiskMark XFS 基准测试

我知道容器(或者任何类型的操作系统或虚拟机)都需要尽可能缩短寻道时间,尤其是在处理大量其他租户和并发客户端时,但 XFS 的结果稍差一些 - 请记住,尽管 ZFS 的寻道时间更快,但它也拥有大量 ARC(RAM)用于缓存,而 XFS 机器没有,因此在这方面并不均衡。如果禁用它,我相当肯定 XFS 设置会更快(抱歉,我还没有这方面的数据)。

希望这能帮助您做出决定!

答案3

作为一个数据点,截至 2020 年 4 月,我有 2 个非常相似的实例运行着非常相似的工作负载:t3.large,大约 4 TB 的 EBS 驱动器,其中一个使用 XFS,另一个使用 EXT4。XFS 的速度
大约快 25%。

为完整起见,负载是运行完全同步的 Hyperledger Besu Ethereum 客户端,这意味着巨大的 RocksDB 数据库主要具有随机访问。IOPS 是瓶颈。

相关内容