1. 测试目的:ext3文件系统下filename最大字符长度
测试平台:RHEL5U3_x64
测试过程:
LENTH=`for i in {1..255};do for x in a;do echo -n $x;done;done`
touch $LENTH
当增加到256时,touch报错,File name too long
linux系统下ext3文件系统内给文件/目录命名,最长只能支持127个中文字符,英文则可以支持255个字符
2. 测试目的:ext3文件系统下一级子目录的个数限制
测试平台:RHEL5U3_x64
测试过程:
[root@fileserver maxdir]# for i in {1..32000};do mkdir $i;done
mkdir: cannot create directory `31999': Too many links
mkdir: cannot create directory `32000': Too many links
ext3文件系统一级子目录的个数为31998(个)。
Linux为了cpu的搜索效率而规定的,要想改变数目大概要重新编译内核.
3. 测试目的:ext3文件系统下单个目录里的最大文件数
测试平台: RHEL5U3_x64
测试过程:
单个目录下的最大文件数似乎没什么特别限制,也是受限于所在文件系统的inode数限制:
df -i或者使用tune2fs -l /dev/sdaX或者dumpe2fs -h /dev/sdaX查看可用inode数,后两个命令
输出结果是一样的,但是跟df所得出的可用inode数会有些误差,至今不明白什么原因。
网上常用两种解决办法:
1) 重新mkfs,ext3默认block大小4096 Bytes,block设置小一些inode数设置大一些
2) 使用loopback文件系统临时解决:
在/usr中(也可以在别处)创建一个大文件,然后做成loopback文件系统,将原来的文件移到这个
文件系统中,并将它mount到/usr下合适的位置。这样可以大大减少你/usr中的文件数目。但是系统
性能会有点损失。
4. 测试目的: 打开文件数限制(文件句柄、文件描述符)
测试平台: RHEL5U3_x64
ulimit -n 65535设置,或者/etc/security/limit.conf里设置用户打开文件数、进程数、CPU等
Ext4(The fourth extended file system)
Ext4是一种针对ext3系统的扩展日志式文件系统,是专门为 Linux 开发的原始的扩展文件系统(ext 或 extfs)的第四版。Linux kernel 自 2.6.28 开始正式支持 Ext4。
兼容性
Ext3升级到ext4能提供系统更高的性能,消除存储限制,和获取新的功能,并且不需要重新格式化分区,ext4会在新的数据上用新的文件结
构,旧的文件保留原状。以ext3
文件系统的方式mount到ext4上会不用新的磁盘格式,而且还能再用ext3来重新挂载,这样仅仅失去了ext4的优势。
大文件系统/文件大小
现在ext3支持最大16TB的文件系统。单个文件最大2TB。Ext4增加了48位块地址,最大支持1EB文件系统,和单个16TB的文件。1EB=1024PB 1PB=1024TB 1TB=1024GB。
子目录可伸缩性
EXT3每个目录最大包含32000个子目录。减去.和..也就是31998
ext4打破了这个限制可以无限制数量的子目录
Extents
传统的Unix派生文件系统,使用间接块映射方案,以跟踪每块用于块相应的数据文件,这对大文件来说是低效率的。现代文件系统使用不同的方法称
为“extends”
。extends基本上指一串连续的物理快。通常叫做数据在下面的N个块中。一个100MB的文件可以分配到一extends中。而不需要创建一个间接映
射表为256000个blocks,(每个block
4kb)大文件被分割为很多范围。Extends改进了性能并且减少了碎片。因为extends鼓励在磁盘上连续布局。
Multiblock 分配
ext4使用了一个多块分配来在一次调用中分配很多块。替换掉每次分配一个块,减少系统开销。在延时分配和extends上十分有用。
延迟分配
延迟分配是一个性能特性(它不修改磁盘格式)。现代文件系统例如XFS,ZFS,btrfs or Reiser 4 并且它尽可能多的延时块的分配。相对于传统文件系统(例如Ext3 reiser3 etc)所做的立刻分配块提供了更好的性能。
日志校验和
日志是磁盘中最常用的一部分,组成日志的这部分也是最容易出现硬件故障的。并且从一个受损的日志上恢复数据会导致巨大的数据损坏。Ext4
校验和提供了改进,它允许将EXt3的双向提交日志格式转换为单向的,加速文件系统操作,在某些情况下达到20%---因此可靠性和性能同时被改进。
在线碎片整理
当 延迟分配,extents 和 multiblock 分配 帮助减少碎片的时候,使用中的文件系统依然会产生碎片。为了解决这个问题,Ext4 将会支持在线碎片整理,并且有一个e4defrag工具可以整理个别文件在整个文件系统中。
索引节点-关联
拥有大索引节点,纳秒时间戳,快速扩展属性,索引节点保留的特点。Ext3 支持可设置的索引节点大小(通过 mkfs
-l参数)但是默认索引节点大小是128字节。Ext4将默认为256字节。这需要适应一些额外的字段(比如纳秒时间戳或者索引节点版本)并且剩余索引节
点空间会被用于存放扩展属性为那些足够小的对象来适合空间。这样使访问那些属性更快,提高那些使用扩展属性的应用程序性能3-7倍。在目录创建的时候保留
若干索引节点在里面,预期它们在未来使用。这样改进性能,因为新文件被创建在目录中他们可以使用保留索引节点。文件创建和删除因此更高效。纳秒时间戳意味
着索引节点字段例如修改时间可以用纳秒分辨率替代Ext3中的秒。
持续预分配
这个特性在ext3最新的内核版本中已经可用了,由glic仿真来实现文件系统不支持的功能,允许应用程序预分配磁盘空间:应用程序告诉文件系统来预分配空间,文件系统预分配需要的块和数据结构。