我正在考虑创建一个 PostgreSQL 数据库映像(在 Amazon EC2 上运行),并且我听说了有关 XFS 的好评。
然而,由于最终你是在 VM 中运行时,EC2 上的 XFS 增益可能不如在准系统上那么大。
我会看到 EC2 上的 XFS 有显著的改进吗?
答案1
不,我不这么认为。
使用 XFS 不会让您失去任何东西,但也不会让您获得太多好处,因为您很可能受到 EC2 的限制。(这更多的是一种观点,而不是事实。)
另一方面:我尽可能地使用 XFS。
答案2
我恰好正在14393.1770
KVM qemu-2.9.1-2
Fedora 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,这似乎不会对我的基准测试中的吞吐量产生负面影响。
以下是这些测试中的一个例子:
然后我切换到 XFS4.10.0-1
和 bcache 1.0.8-8
,同样是 SSD 过度配置cache_mode writeback
。速度似乎确实加快了不少。虚拟机感觉非常“灵敏”。在我的测试中,RAM 从未超过 4G。
另外:按速度降序排列,与 raw、qed 和 vmdk 相比,最好的格式是 qcow2(至少对于此版本的 KVM 而言)。
我知道容器(或者任何类型的操作系统或虚拟机)都需要尽可能缩短寻道时间,尤其是在处理大量其他租户和并发客户端时,但 XFS 的结果稍差一些 - 请记住,尽管 ZFS 的寻道时间更快,但它也拥有大量 ARC(RAM)用于缓存,而 XFS 机器没有,因此在这方面并不均衡。如果禁用它,我相当肯定 XFS 设置会更快(抱歉,我还没有这方面的数据)。
希望这能帮助您做出决定!
答案3
作为一个数据点,截至 2020 年 4 月,我有 2 个非常相似的实例运行着非常相似的工作负载:t3.large,大约 4 TB 的 EBS 驱动器,其中一个使用 XFS,另一个使用 EXT4。XFS 的速度
大约快 25%。
为完整起见,负载是运行完全同步的 Hyperledger Besu Ethereum 客户端,这意味着巨大的 RocksDB 数据库主要具有随机访问。IOPS 是瓶颈。