ext4的一些特性
delalloc介绍
delalloc是ext4下的一个新特性,延迟分配技术Delay Allocation。
实现原理为: Buffer Write时数据会被保存到page cache中,但是系统并不会为这些数据分配相应的磁盘块,仅仅会查询是否有已经为这些数据分配过磁盘块,以便决定后面是否需要为这些数据分配磁盘块。在用户调用fsync或者系统触发回写过程时,系统会尝试为标记需要分配磁盘块的这些数据分配磁盘块。这样,文件系统可以为这些属于同一个文件的数据分配尽量连续的磁盘空间,从而优化后续文件的访问性能(因为传统机械硬盘顺序读写的性能要比随机读写好很多
noatime和nodiratime
出现场景
在DB场景,设置fstab mount参数为noatime和nodiratime,将会显著提高磁盘IO的效率,提升文件系统的性能。
noatime和nodiratime介绍
默认情况下,Linux ext3/ext4 文件系统在文件被访问、创建、修改等的时候记录下了文件的一些时间戳,比如:文件创建时间、最近一次修改时间和最近一次访问时间。因为系统运行的时候要访问大量文件,如果能减少一些动作(比如减少时间戳的记录次数等)将会显著提高磁盘 IO 的效率、提升文件系统的性能。Linux 提供了 noatime 这个参数来禁止记录最近一次访问时间戳。noatime不更新文件系统上inode访问记录,nodiratime不更新文件系统上的目录inode访问记录。其中,noatime 已经包含了nodiratime,不需要同时指定。
muahao@aliyun.com