并行启动应用程序从而加速 Linux 的引导

豆豆网   技术应用频道   2007年05月12日  【字号: 收藏本文

本文详细介绍并行启动应用程序从而加速 Linux 的引导

  使用 upstart

  编译和安装 upstart 非常简单,并且遵循典型的 configure、make 和 make install 模式。 Upstart 提供了一组示例作业,它们与典型的 init 配置兼容。与 initng 类似,新应用程序必须要根据需求编写自己的作业(可能还需要添加新事件)。不管怎样,部署新的 init 系统都会有一些风险。不过 upstart 的优点当然值得去冒这些风险并执行其他必要的操作。

  正如上面介绍的一样,initctl 工具提供了人们对 telinit 所期望的功能。不过 initctl 也为跟踪和调试提供了附加功能。

  其他选项

  本文中介绍的这两种方法 —— initng 和 upstart —— 并不是只有这两种程序可以替代 init。您还会找到其他的 init 替代程序,例如 runit、pardus、 minit 和 einit。所有这些程序在 Linux 社区中都有一些支持者和一定的促进动力。现在,upstart 可能就是我们要了解的一个,因为它已经被流行的 Ubuntu 发行版采纳为 init 的替代程序。

  使用 bootchart 监视 init 性能

  在修改了系统引导进程后,理解修改的内容以及其如何影响系统引导的总时间会非常有帮助。Ziga Mahkovec 开发了一个非常有用的工具 bootchart,可以可视化地表示启动进程的组成。这个工具由几个元素组成,包括一个数据日志记录器工具和一个可视化工具。

  数据日志记录器在(bootchartd)是在 init 进程中运行的(通常,在 grub 或 lilo.conf 文件中指定)。在 bootchartd 完成初始化之后,就会将控制权交给真正的 init 进程(通常是 /sbin/init)。Bootchartd 本质上是一个分析器,它每隔一段时间定期对环境进行采样(默认间隔是 200ms)。所谓对环境进行采样,就是说它可以读取当前 CPU 的统计信息、I/O 和空闲事件、磁盘使用情况以及每个活动进程的信息(通过 proc 文件系统)。数据保存在一个临时文件(/var/log/bootchart.tgz)中用于稍后进行二次处理。

  Bootchart 然后会使用一个二次处理工具将原始数据转换成一个引导图。这个过程可以在本地使用一个 Java™ 应用程序(bootchart 发行版的一部分)来完成,不过更简单的方法是通过 bootchart 主页上的一个 Web 表单来完成。图 2 展示了引导图表的部分示例。注意这些图将会非常大(这取决于所启动的服务和应用程序)。

  图 2. bootchartd 所创建的引导图片断

  

  结束语

  与 Linux 本身一样,存在很多方法和大量的灵活性对引导时间进行优化。从基于依赖关系的解决方案(如 initng)到基于事件的解决方案(如 upstart),总会有一种优化解决方案能够满足您的要求。使用 bootchart 包,您可以深入理解系统的引导时间是如何分配的,从而进一步进行优化。

来源:ibm    作者:M. Tim Jones    责编:豆豆技术应用

正在加载评论...