来自国外问答SNS网站Quora的一个问题:XFS、ZFS和ext3这3个文件系统哪个能够与MySQL产生最佳的性能?对此,来自Facebook的资深数据库专家Domas Mituzas给出了自己的解答,他认为MySQL最适合XFS文件系统。
在XFS文件系统的Linux版本发布之前,选择适合的Linux文件系统很简单,追求原始性能通常倾向于使用ReiserFS,而重视数据完整性则首 选ext3。XFS Linux版本出现后,这一情况发生了改变。一项比较XFS、ReiserFS和ext3在原始性能方面优劣的测试显示,在大文件操作方面,XFS在所有 测试中一直处于领先地位。
Domas Mituzas分析MySQL数据库系统有几个主要的访问模式,如下:
a)同步读取InnoDB存储引擎页面输入;
b)异步写入InnoDB存储引擎页面输出;
c)同步改写InnoDB存储引擎事务日志;
d)同步添加MySQL数据库二进制日志。
在高性能环境中,重要的是选择一个在以上四种访问模式下都能提高效率的文件系统。如果这是一个读写密集型系统,要求XFS能够有效的刷新页面,就像支持挂起每个索引节点(或文件)的写操作。XFS的元数据效率能够使同步写操作的速度高于其他文件系统。
直到最近,XFS成为唯一的大型Linux文件系统,支持文件对齐。InnoDB数据文件块大小是固定的,条纹边界上对齐可能会增加额外的5%以上的 I/O性能。一般来说,XFS能够使大多数工程支持并行工作负载,多个分配组允许元数据操作的并行方式,而不仅数据。另外,生产系统还有其他的操作问题, 例如如果表文件被使用,想要尽快断开链接,DROP TABLE和其他文件remoavls(如TRUNCATE)才不会使整个操作拖延太久。XFS文件系统是更好的选择。
从中可以看出降 低I/O延迟的方式是使用XFS文件系统,这是生产系统比吞吐量为导向的评测更重要的方式。所以,一般来说实际成本,并行和OLTP访问模式的效率组成更 为重要。评测并不是全部,因为测试结果忽略了I/O延迟,这在生产环境中极其重要。如果你要正确评测 OLTP系统,XFS将是最快的。
最后是为开发者提供的支持。XFS有活跃的开发社区,可以为提供帮助,如果给他们足够好的问题描述。
XFS 最初是由Silicon Graphics,Inc.于90年代初开发的。那时,SGI发现他们的现有文件系统(existing filesystem,EFS)正在迅速变得不适应当时激烈的计算竞争。为解决这个问题,SGI决定设计一种全新的高性能64位文件系统,而不是试图调整 EFS在先天设计上的某些缺陷。这就是XFS文件系统,它至今仍作为SGI基于IRIX的产品( 工作站到超级计算机)的底层文件系统来使用。现在,XFS也可以用于Linux,它为 Linux 社区提供了一种健壮的、优秀的以及功能丰富的文件系统,并且这种文件系统所具有的可伸缩性能够满足最苛刻的存储需求。
XFS的主要特性包括:
数据完全性
采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。
传输特性
XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。笔者曾经对XFS、JFS、Ext3、ReiserFS文件系统进行过测试,XFS文件文件系统的性能表现相当出众。
可扩展性
XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持都表现出众,支持特大数量的目录。最大可支持的文件大 小为263 = 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes。
XFS使用高的表结构(B+树),保证了文件系统可以快速搜索与快速空间分配。XFS能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。
传输带宽
XFS 能以接近裸设备I/O的性能存储数据。在单个文件系统的测试中,其吞吐量最高可达7GB每秒,对单个文件的读写操作,其吞吐量可达4GB每秒。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
甲骨文宣布MySQL Cluster 7.4全面上市
甲骨文公司今天宣布MySQL Cluster 7.4全面上市。MySQL Cluster是一款ACID兼容的开源事务处理型数据库,具有实时内存性能和99.999%的可用性。
-
解读MySQL数据库的双向复制
在主-从复制中,主机影响从机。但从数据库中的任何更改不会影响主数据库,这篇文章将帮助你实现双向复制。
-
多种不同的MySQL数据库SSL配置
SSL通过加密网络防止有针对性的监听。在与正确的服务器进行交互时,可以有效应对中间人攻击。本文介绍了不同的使用MySQL数据库的SSL配置方法。
-
超越Facebook:图形数据库应用案例集锦
提到图形数据库,人们想到的恐怕依然是Facebook,不过,并不是只有社交媒体公司才通过图形数据库处理大数据。