为什么华为不直接使用squashfs,而是要另辟蹊径开发新的erofs。
1. Fio性能测试比较
测试环境:高通8核+eMMC。
测试对象:压缩erofs文件系统,压缩squashfs文件系统和标志ext4文件系统
测试项目:顺序读,随机读和分散读。(enwik9是标准测试数据,android是以android framework为主要内容的数据,两者差别主要是在压缩比上)
顺序读表现最好的依然是老牌的ext4,但是erofs明显好于squashfs,但是squashfs在加上谷歌打patch之后,性能提升很多(红色柱子),但依然还是比erofs差。

随机读上由于有缓存的作用,squashfs看起来表现更好,但实质会造成更大的读放大问题,特别是块比较大的128KB squashfs。4KB的erofs和ext4还是比较相当的。

分散读主要是要排除掉读缓存的效果,测试方法是每128kb只读取前4kb,结果是显然squashfs因为读放大很多,导致了性能最差。但是erofs的表现没有比ext4差很多,考虑到它本身还压缩了,已经非常不错。

2. 压缩比率测试
如

本文对比了华为EROFS文件系统与squashfs、ext4在Fio性能测试、压缩比率和读放大测试中的表现。在顺序读测试中,ext4最优,但EROFS优于squashfs;随机读时,squashfs因缓存看似占优,但存在较大读放大问题。分散读测试中,EROFS接近ext4的性能,且压缩率高于70%,在应对纯文本时压缩率可达56%。在读放大测试中,EROFS相比于squashfs显示出更好的性能。
最低0.47元/天 解锁文章
2万+





