sreadahead是initel再moblin项目里面写的预读取程序。和ubuntu自带的readahead相比,基本原理是一样的:再事先将需要的磁盘文件集中的读到cache中来,提高系统速度。这里涉及一个系统调用readahead。
不同之处在于,其一,intel的sreadahead是分成4个线程进行的。其二,sreadahead在 生成文件预读列表的时候,按照时间进行排序,然后分拆成一定大小的record读入。因为需要排序,intel对文件系统内核做了一定修改,再inode 结构体中加了一个成员created_when,并提供了一个IOCTRL方法EXT3_IOC_INODE_JIFFIES辅助排序。(目前intel 提供的包是针对ext3的同样的原理应该可以应用到其他文件系统)
现在sreadahead的使用还需要readahead先安装好,因为readahead回生成rcS下脚本和/etc/readahead下的文件预读列表,这些都是sreadahead所需要的。
另外根据实际测试
readahead对于采用SSD作为存储介质的系统,没于什么效果。这可能与SSD存储一般是采用随机读写的方式有关。
不同之处在于,其一,intel的sreadahead是分成4个线程进行的。其二,sreadahead在 生成文件预读列表的时候,按照时间进行排序,然后分拆成一定大小的record读入。因为需要排序,intel对文件系统内核做了一定修改,再inode 结构体中加了一个成员created_when,并提供了一个IOCTRL方法EXT3_IOC_INODE_JIFFIES辅助排序。(目前intel 提供的包是针对ext3的同样的原理应该可以应用到其他文件系统)
现在sreadahead的使用还需要readahead先安装好,因为readahead回生成rcS下脚本和/etc/readahead下的文件预读列表,这些都是sreadahead所需要的。
另外根据实际测试
readahead对于采用SSD作为存储介质的系统,没于什么效果。这可能与SSD存储一般是采用随机读写的方式有关。