linux启动前关闭cache,fcache如何加速linux的启动?

fcache是由JensAxboe编写的,旨在不修改文件系统的情况下,通过线性缓存提升Linux启动速度。它有prime和normal两种模式,prime模式用于首次启动时缓存数据,normal模式用于后续启动时直接从缓存读取。通过在内核打补丁、创建fcache分区并修改启动脚本来启用。该技术特别适用于启动流程重复的情况,能显著加快启动时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

fcache的作者是Jens Axboe,他是把这个patch当成一个weekend project写的 。

这个补丁的目的是在不修改文件系统的前提下,而使启动的流程是完全线性的(应该是指读磁盘的流程),从而加速linux的启动,简单的说fcache就是文件系统和块设备之间一种重映射。

fcache有两种运行模式:prime模式和normal模式。当运行在prime模式时,他缓存一切对目标分区的读操作,写入缓存分区。从而使数据在缓存设备中线性存放,即是一个关于时间的函数。当运行在normal模式时,fcache将会在缓存设备中查找缓存,如果命中的话,那么启动即可以直接读入缓存设备的线性数据。

由于启动流程大多时候是重复性的,因此,fcache会提供完美的获取启动数据途径。

一般来说,第一次启动使用prime模式,准备好缓存数据,以后启动时使用normal模式,可以大大加速启动的速度(只要你的启动流程不变的话)

这里有一份hzmagnel写的关于fcache原理的文档,有兴趣的同学可以随便翻翻,我们会感动的内牛满面!

二。

如何使用fcache

Step 1:给内核打上fcache补丁,推荐的内核版本是2。6。17

cd /usr/src/linux

下载补丁 wget http://www。kernel。org/pub/linux/kernel/people/ck/patches/2。

6/2。6。17/2。6。17-ck1/patches/fs-fcache-v2。1。patch

进入内核源代码目录 patch -p1 Block devices->Boot fronted cache driver

然后重新编译内核,并使用这个内核。

Step 2:创建fcache的分区

分区大小为512M左右,文件系统为ext3,如果仅仅为试验,可以暂时使用swap分区作为fcache的分区

Step 3:修改启动和关闭脚本

在linux启动的时候,根文件系统第一次被加载的时候是readonly的,等到检查完根文件系统,这时候再用rw的方式remount根文件系统。

我们要做事情就是在remount的时候,加上fcache的参数。而remount的所在是因不同发行版而异的,比如在gentoo 中,remount在/etc/init。d/checkroot里,而在suse中,remount在/etc/init。

d/rootfsck中。我们可以通过grep

"remount"找到那个脚本。

找到那个脚本后,找出mount -n -o remount,rw / 2>/dev/null

修改为mount -n -o remount,fcache_dev=#/*,fcache_prime=0 / 2>/dev/null

以下针对ubuntu 7。

04,写出一种具体做法(注意:其他版本需要做相应调整)

编辑 /etc/init。d/checkroot。sh脚本,找到

if ! mount -n -o remount,$rootopts,$rootmode $fstabroot / 2>/dev/null

then

mount -n -o remount,$rootopts,$rootmode /

fi

修改为

if ! mount -n -o

remount,$rootopts,$rootmode,fcache_dev=#/*,fcache_prime=1 $fsabroot /

2>/dev/null

then

mount -n -o remount,$rootopts,$rootmode,fcache_dev=#/*,fcache_prime=1 /

fi

注意这里fcache_dev=#/*,其中fcache_dev是指我们在第二步创建的那个分区对应的设备。

#代表主设备号,*代表次设备号。比如笔者的使用的IDE硬盘,是hda10,因此fcache_dev=3/10。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值