嵌入式或电信设备的快速启动对于时间关键型应用程序至关重要,并且在改善用户体验方面也起着非常重要的作用。本文提供了一些关于如何提高任何设备的启动时间的重要提示。快速启动或快速重启在各种情况下都起着至关重要的作用。为了保持所有服务的高可用性和更好的性能,嵌入式设备的快速启动至关重要。想象一下运行Linux操作系统但未启用fastboot的电信设备,所有依赖于该特定嵌入式设备的系统、服务和用户都可能受到影响。这些设备保持其服务的高可用性非常重要,为此快速启动和重新启动起着至关重要的作用。电信设备的一个小故障或关闭,即使只有几秒钟,也会对无数互联网用户造成严重破坏。因此,对于许多时间紧迫的设备和电信设备来说,在它们的设备中添加快速启动功能以帮助它们快速恢复工作是非常重要的。让我们从图1了解Linux启动过程。图1:启动过程监控工具和启动过程在对机器进行更改之前,用户应该了解许多因素。这包括您计算机的当前启动速度,以及占用资源和增加启动时间的服务、进程或应用程序。bootchart用于监控开机速度和开机过程中启动的各种服务。用户可以使用以下命令安装:sudoapt-getinstallpybootchartgui每次启动时,bootchart都会在日志中保存一个png文件,方便用户通过查看该png文件了解系统的启动过程和服务.为此,请使用以下命令:cd/var/log/bootchart用户可能需要一个应用程序来查看png文件。Feh是一个面向控制台用户的X11图像查看器。与大多数其他图像查看器不同,它没有花哨的GUI,而只是用于显示图片。feh可以用来查看png文件。您可以使用以下命令安装它:sudoapt-getinstallfeh您可以使用fehxxxx.png查看png文件。图2:Bootmap图2显示了正在查看的bootmappng文件。然而,systemd-analyze不需要为Ubuntu15.10提供引导图。要获得有关启动速度的简要信息,请使用以下命令:systemd-analyze图3:systemd-analyze的输出图3显示了命令systemd-analyze的输出。命令systemd-analyzeblame用于根据初始化所花费的时间打印所有运行单元的列表。此信息非常有用,可用于优化启动时间。systemd-analyzeblame不显示服务类型为Simple(Type=simple)的服务,因为systemd假定这些服务应该立即启动;因此,无法测量初始化延迟。图4:systemd-analyzeblame的输出图4显示了systemd-analyzeblame的输出。以下命令打印时间关键服务单元的树链:命令systemd-analyzecritical-chain图5显示了命令systemd-analyzecritical-chain的输出。图5:systemd-analyzecritical-chain的输出减少启动时间的步骤下面显示了一些可以减少启动时间的不同步骤。BUM(引导管理器)BUM是一个运行级配置编辑器,允许在系统引导或重新启动时配置初始化服务。它显示了可以在引导时启动的每个服务的列表。用户可以打开和关闭个别服务。BUM具有非常清晰的GUI,并且非常易于使用。在Ubuntu14.04中,可以使用以下命令安装BUM:sudoapt-getinstallbum要在15.10之后的版本中安装它,请从链接http://apt.ubuntu.com/p/bum下载软件包。从基本服务开始,禁用扫描仪和打印机相关服务。如果您不使用蓝牙和其他不需要的设备和服务,您也可以禁用其中的一些。我强烈建议您在禁用相关服务之前了解服务的基础知识,因为这可能会影响计算机或操作系统。图6显示了BUM的图形用户界面。图6:BUM编辑rc文件要编辑rc文件,您需要转到rc目录。这可以使用以下命令来完成:cd/etc/init.d但是,访问init.d需要root用户权限,该目录基本上包含系统运行或启动时使用的启动/停止脚本定期控制(启动,停止、重新加载、启动启动)守护进程。init.d目录下的rc文件称为运行控制脚本。在启动期间,init执行rc脚本并执行其功能。为了提高启动速度,我们可以更改rc文件。使用任何文件编辑器打开rc文件(当您位于init.d目录中时)。例如,您可以通过键入vimrc将CONCURRENCY=none更改为CONCURRENCY=shell。后者允许某些启动脚本同时执行而不是顺序执行。在最新版本的内核中,该值应更改为CONCURRENCY=makefile。图7和图8显示了编辑rc文件前后的启动时间对比。可以注意到启动速度有所提高。编辑rc文件之前的启动时间是50.98秒,但是在更改rc文件之后是23.85秒。但是,上述更改方法在Ubuntu15.10及之后的操作系统上不起作用,因为最新内核的操作系统使用的是systemd文件,而不是init.d文件。图7:rc文件更改前的启动速度图8:rc文件更改后的启动速度E4ratE4rat代表e4减少访问时间(仅在ext4文件系统的情况下)。这是一个由AndreasRid和GundolfKiefer开发的项目。E4rat是一个通过碎片整理帮助快速启动的应用程序。它还可以加快应用程序的启动速度。E4rat使用物理文件的重新分配来消除寻道时间和旋转延迟,从而实现高磁盘传输速度。E4rat以.deb包的形式提供,您可以从其官方网站http://e4rat.sourceforge.net/下载。Ubuntu默认安装的ureadahead包与e4rat冲突。所以必须使用以下命令安装这几个包:sudodpkgpurgeureadaheadubuntu-minimal现在使用以下命令安装e4rat依赖项:sudoapt-getinstalllibblkid1e2fslibs打开下载的.deb文件并安装它。现在需要正确收集引导数据以使e4rat正常工作。请按照下面给出的步骤使e4rat正常运行并提高启动速度。在引导期间访问Grub菜单。这可以通过在系统启动时按住shift键来完成。选择您通常用于引导的选项(内核版本),然后按e。找到以linux/boot/vmlinuz开头的行,并在行尾添加以下代码(在句子的最后一个字母后按空格键):init=/sbin/e4rat-collect或try-quietsplashvt.handsoff=7初始化=/sbin/e4rat-收集。现在,按Ctrl+x继续引导。这允许e4rat在启动后收集数据。在这台机器上工作,并在接下来的两分钟内打开和关闭应用程序。通过转到e4rat文件夹并使用以下命令访问日志文件:cd/var/log/e4rat。如果您没有找到任何日志文件,请重复上述过程。日志文件就位后,再次访问Grub菜单并按e选择您的选项。在您之前编辑过的同一行的末尾键入single。这将使您能够访问命令行。如果出现另一个菜单,请选择Resumenormalboot。如果由于某种原因无法进入命令提示符,请按Ctrl+Alt+F1。看到登录提示后,输入您的登录信息。现在输入以下命令:sudoe4rat-realloc/var/lib/e4rat/startup.log。此过程可能需要一段时间,具体取决于机器的磁盘速度。现在使用以下命令重新启动您的机器:sudoshutdown-rnow。现在,我们需要将Grub配置为在每次启动时运行e4rat。使用任何编辑器访问grub文件。例如,gksugedit/etc/default/grub。查找以GRUBCMDLINELINUXDEFAULT=开头的行,并在引号之间和任何选项之前添加以下行:init=/sbin/e4rat-preload18。它应该如下所示:GRUBCMDLINELINUXDEFAULT=init=/sbin/e4rat-预加载安静启动。保存并关闭Grub菜单,然后使用sudoupdate-grub更新Grub。重启系统,你会发现启动速度有了明显的变化。图9和图10显示了安装e4rat前后启动时间的差异。可能会注意到启动速度的增加。在使用e4rat之前,启动需要22.32秒,但是在使用e4rat之后,启动需要9.065秒。图9:使用e4rat之前的启动速度图10:使用e4rat之后的启动速度一些简单的调整良好的启动速度可以通过小的调整来实现,下面列出了其中两个。使用固态设备代替普通硬盘驱动器或其他存储设备作为SSD肯定会提高启动速度。SSD还有助于加快文件传输和运行应用程序的速度。禁用GUIGUI、桌面图形和窗口动画是资源密集型的。禁用GUI是获得良好启动速度的另一种好方法。
