Linux的文件系统有点像MySQL的存储引擎,它支持各种各样的文件系统。它最上层是通过 virtual files system虚拟文件系统作为一个抽象接口层来对外提供调用的。然后下层的各种文件系统实现这些调用接口就行了。1. Linux 中的 日志文件系统和非日志文件系统文件 ...
Linux的文件系统有点像MySQL的存储引擎,它支持各种各样的文件系统。它最上层是通过 virtual files system虚拟文件系统作为一个抽象接口层来对外提供调用的。然后下层的各种文件系统实现这些调用接口就行了。
1. Linux 中的 日志文件系统和非日志文件系统
文件内容的修改涉及到两部分:实际文件内容的修改 和 文件元(metadata)信息的修改。所以在修改一个成功之后,修改另一个之前,此时系统崩溃,就会导致两者的不一致。所以提出了日志文件系统的概念。
所谓的日志文件系统(Journaling file system),就是在实际修改文件内容和文件元信息之前,将他们的修改先写到一个日志中(journal log)。这样的话,如果发生系统崩溃,就可以使用日志进行恢复。当然,写日志会对文件系统的性能有一定的影响。除了ext2之外,其它文件系统几乎都是日志文件系统。
日志文件系统的处理过程是:1)先写日志;2)然后写实际的文件系统;3)删除日志;
日志文件系统又可以分成三种类型:
1)日志模式(journal): 将所有的元数据和数据改变均写入日志,对性能影响最大;
2)预定模式(ordered): 只记录元数据的变化, 在数据写入磁盘后再修改元数据,对性能影响中等;
3)写回模式(writeback): 只记录元数据的修改变化,对数据修改顺序无要求,对性能影响最小;
我们可以在/etc/fstab 文件中修改文件系统的日志模式。
/dev/sdb1 /testfs ext3 defaults,data=writeback 0 0
Linux 常用文件系统:
ext4, ext4, XFS, ReiserFS, JFS
其中最常用的是 ext4, XFS. 其中redhat7/centos7将XFS作为默认的文件系统。在最新内核的测试中XFS性能也明显超过ext4。所以对于mysql服务器,最好选择使用 XFS 文件系统。
关于 ssd上的ext4和xfs有一个比较:
https://www.percona.com/blog/2012/03/15/ext4-vs-xfs-on-ssd/
在rhel6.4之前ext4性能比xfs好,因为xfs有lock争用的bug。但是6.4开始,xfs的bug被fix了。所以xfs性能比ext4好。
在xfs的锁争用bug没有解决时:
sync asyncthreads throughput throughput XFS ext4 XFS ext41 1.90/124k 1.41/92k 1.72/112k 1.41/92k2 1.01/64k 1.65/108k 0.97/62k 1.65/108k4 0.27/17k 1.55/102k 0.21/13k 1.55/102k8 0.13/8k 1.45/95k 0.15/9k 1.45/95k16 0.12/7k 1.45/95k 0.12/7k 1.45/95k
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:MySQL 调优基础(三) Linux文件系统
关键词:MYSQL
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。