全部博文(1144)
分类: LINUX
2006-03-16 08:42:23
ext2 很擅长存储大量大小在 20k 以上的文件,但是对于存储 2,000 个 50 字节的文件来说,它就不是一种很理想的技术了。当 ext2 必须处理非常小的文件时,不只是性能显著地下降,而且存储效率也同样下降,因为 ext2 是按 1k 或者 4k 的块来分配空间的。
而在采用ext2+qmail大型应用的时候这个问题出现在两个地方
一 就是queue 默认的情况是所有的queue分布在24个目录里 当有24万个邮件堆在queue时候
每个目录就有一万个小文件 事实上2000个小文件ext2就已经不堪重负了.当然你可以通过负载均衡来分担负载
二 就是maildirs 当有十万用户时maildirs也有十万之众 ext2早就支持不住了,在没有ReiserFS的时候我只能将/vmail/dahoo/maildirs 目录改造为 /vmail/da/dahoo/maildirs来减缓ext2文件效率问题
一些大型应用不得不转为应用API 数据库 或其他中间层 这又陷入了 物理拓扑与应用逻辑
纠缠不清的怪圈
ReiserFS的到来改变了一切
ReiserFS是专为频繁变动的小文件而设计的文件系统。实际上,当处理小于 1k 的文件时,ReiserFS 大概要比 ext2 快 8 到 15 倍!更妙的是,这些性能提高并不以其它文件类型的性能损失为代价。通常,ReiserFS 几乎在各个方面都优于 ext2,但是在处理小文件时才真正体现出了其闪光点。特别是采用了maildirs的qmail ReiserFS的性能是决定性的你不再需要为了弥补ext2小文件的不足而拆东墙补西墙,ReiserFS提供的是从根本上解决大型应用问题的方案
ReiserFS 技术优势
那么 ReiserFS 是怎样提供如此出色的小文件性能的呢?ReiserFS 使用了特殊的优化 b+ 平衡树(就像ldap组织一样)来组织所有的文件系统数据。这为其自身提供了非常不错的性能改进,也能够减轻文件系统设计上的人为约束。例如,现在一个目录下可以容纳 1000,000 个子目录。另一个使用 b+ 树的好处就是 ReiserFS 能够像大多其它的下一代文件系统一样,根据需要动态地分配索引节,而不必在文件系统创建时建立固定的索引节。这有助于文件系统更灵活地适应其面临的各种存储需要,同时提供附加的空间有效率
当然ReiserFS还存在问题
没有提供dump
文件系统升级需要格式化硬盘
ReiserFS是下一代文件系统里最引人注目的一个 他提供了完美的系统性能 更重要的是它相当的稳定(mandrake8.2下 redhat7.2有umount问题)
如果你使用qmail 那你一定要试试 因为在我看来它是qmail的完美伴侣