前几天有个朋友因为项目实施,在考虑Linux上的Oracle最快要多长时间才能启动?他们的要求是10秒以内。因为系统可能会经常断电。
我当时考虑30秒以内能够实现,要压缩到10秒以内就太困难了。因为数据库的断电恢复可能需要较长的时间。
今天看到这样一些新闻和消息,先了解一下Linux的启动速度。
首先最快的Linux号称可以在2.97 秒内启动:Linux boots in 2.97 seconds
这是一家日本公司设计的嵌入式Linux系统Lineo在低功耗的系统上可以在2.97秒内启动。他们称这个快速启动软件系统为Warp 2,Warp 2 由一个引导加载程序,一个定制的Linux软件套装,和一个类似于suspend-to-disk(休眠到硬盘)的软件 hibernation driver组成。
这个"冬眠驱动"可以将RAM的快照信息写入到闪存里形成镜像,而不是写到硬盘里,据悉它能够保存50%的RAM信息。Warp 2 可以保存多重系统的RAM快照,以给重启提供干净的启动环境,或者启动时直接读取之前保存的RAM 镜像,这样就能加快启动速度。 他们的测试环境是使用arm CPU,运行Warp 2的系统,当然Warp 2里包含Linux,X显示子系统,窗口管理器twm,3个 xterm命令行工具。它启动的是一个18.3MB的RAM镜像,花费了2.97秒。而在同样的环境下,启动6.8M的RAM 镜像需要3.17秒。
而在LWN.net上,另外一篇文章则描述了5秒内启动的Linux内核:
two developers beat the five second mark with two software loads: one modified Fedora and one modified Moblin.
这说明Linux的启动时间是大可以精简的,不过这样的内核需要相应的硬件系统的配合。
在研究Linux启动和初始化时,一个很好的辅助工具是BootChart,该工具可以用于展现Linux的启动时间消耗,以便分析和优化。