我正在研究创build一个PostgreSQL数据库镜像(在Amazon EC2上运行),我已经听说了XFS的好处。
但是,由于最终你运行在虚拟机上,所以EC2上XFS的增长可能不如准系统。
我将看到EC2上XFS的重大改进?
不,我不这么认为。
你不会放弃XFS的任何东西,但是你将不会获得太多的收益,因为你很可能受到EC2的限制。 (这是比事实更重要的意见。)
OTOH:我可以在任何地方使用XFS。
我巧合的是在基于KVM的Windows 10 LTSB 1607 14393.1770虚拟机上的存储解决scheme的基准testing过程qemu-2.9.1-2 Fedora 26 x86_64 4.13.11-200
长话短说,很多取决于你的环境,但对我来说,它比ZFS更快。 我不确定亚马逊对EC2做了什么样的优化,但是它也是基于Fedora的RHEL,所以希望我的testing环境足够类似于比较。 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希捷企业级硬盘。 存储基础架构是两个HGST he8 8TB氦充满驱动器,其中800GB的Intel S3700大约超过了规格的60%。 驱动器是第二代fdisk分区,4kalignment(块大小4096)。
我开始将OpenZFS版本5000设置为sync=always 。 我喜欢它,它使用方便,易用,function强大,但似乎在CPU资源方面有很大的用处。 虚拟机感觉使用起来很慢,即使它是唯一启动的。 我将ARC调整到最大4GB,这在我的基准testing中似乎没有对吞吐量产生负面影响。
以下是这些testing的一个例子:
然后,我切换到XFS 4.10.0-1和bcache 1.0.8-8 ,相同的SSD over-provisioning, cache_mode writeback 。 这似乎加快了很多。 虚拟机感觉真的很“活泼”。 内存从未超过4G在我的testing。
另外:按照速度的降序,最好的格式是qcow2,相对于原始的,qed和vmdk(至less对于这个版本的KVM)。
我知道容器(或任何types的操作系统或虚拟机,实际上)要求尽可能缩短寻找时间,尤其是在处理大量其他租户和并发客户端时,但XFS结果稍差 – 请记住,尽pipeZFS的search时间更快,XFS机器也没有足够的ARC(RAM)来caching,所以在这方面并不是一致的。 如果它被禁用,我相当肯定XFS设置会更快(抱歉,我还没有数据)。
希望这可以帮助你做出决定!