Linux启动时间优化技巧

导读快速启动嵌入式设备或电信设备,对于时间要求紧迫的应用程序是至关重要的,并且在改善用户体验方面也起着非常重要的作用。这个文章给予一些关于如何增强任意设备的启动时间的重要技巧。

快速启动或快速重启在各种情况下起着至关重要的作用。为了保持所有服务的高可用性和更好的性能,嵌入式设备的快速启动至关重要。设想有一台运行着没有启用快速启动的 Linux 操作系统的电信设备,所有依赖于这个特殊嵌入式设备的系统、服务和用户可能会受到影响。这些设备维持其服务的高可用性是非常重要的,为此,快速启动和重启起着至关重要的作用。

一台电信设备的一次小故障或关机,即使只是几秒钟,都可能会对无数互联网上的用户造成破坏。因此,对于很多对时间要求严格的设备和电信设备来说,在它们的设备中加入快速启动的功能以帮助它们快速恢复工作是非常重要的。让我们从图 1 中理解 Linux 启动过程。

Linux启动时间优化技巧Linux启动时间优化技巧

图 1:启动过程

监视工具和启动过程

在对机器做出更改之前,用户应注意许多因素。其中包括计算机的当前启动速度,以及占用资源并增加启动时间的服务、进程或应用程序。

启动图

为监视启动速度和在启动期间启动的各种服务,用户可以使用下面的命令来安装:

sudo apt-get install pybootchartgui

你每次启动时,启动图会在日志中保存一个 png 文件,使用户能够查看该 png 文件来理解系统的启动过程和服务。为此,使用下面的命令

cd /var/log/bootchart

用户可能需要一个应用程序来查看 png 文件。Feh 是一个面向控制台用户的 X11 图像查看器。不像大多数其它的图像查看器,它没有一个精致的图形用户界面,但它只用来显示图片。Feh 可以用于查看 png 文件。你可以使用下面的命令来安装它:

sudo apt-get install feh

你可以使用 feh xxxx.png 来查看 png 文件。

Linux启动时间优化技巧Linux启动时间优化技巧

图 2:启动图

图 2 显示了一个正在查看的引导图 png 文件。

systemd-analyze

但是,对于 Ubuntu 15.10 以后的版本不再需要引导图。为获取关于启动速度的简短信息,使用下面的命令:

systemd-analyze

Linux启动时间优化技巧Linux启动时间优化技巧

图 3:systemd-analyze 的输出

图表 3 显示命令 systemd-analyze 的输出。

命令 systemd-analyze blame 用于根据初始化所用的时间打印所有正在运行的单元的列表。这个信息是非常有用的,可用于优化启动时间。systemd-analyze blame 不会显示服务类型为简单(Type=simple)的服务,因为 systemd 认为这些服务应是立即启动的;因此,无法测量初始化的延迟。

Linux启动时间优化技巧Linux启动时间优化技巧

图 4:systemd-analyze blame 的输出

图 4 显示 systemd-analyze blame 的输出。

下面的命令打印时间关键的服务单元的树形链条:

command systemd-analyze critical-chain

图 5 显示命令 systemd-analyze critical-chain 的输出。
Linux启动时间优化技巧Linux启动时间优化技巧

图 5:systemd-analyze critical-chain 的输出

减少启动时间的步骤

下面显示的是一些可以减少启动时间的各种步骤。

BUM(启动管理器)

BUM 是一个运行级配置编辑器,允许在系统启动或重启时配置初始化服务。它显示了可以在启动时启动的每个服务的列表。用户可以打开和关闭各个服务。BUM 有一个非常清晰的图形用户界面,并且非常容易使用。

在 Ubuntu 14.04 中,BUM 可以使用下面的命令安装:

sudo apt-get install bum

为在 15.10 以后的版本中安装它,从链接 http://apt.ubuntu.com/p/bum 下载软件包。

以基本的服务开始,禁用扫描仪和打印机相关的服务。如果你没有使用蓝牙和其它不想要的设备和服务,你也可以禁用它们中一些。我强烈建议你在禁用相关的服务前学习服务的基础知识,因为这可能会影响计算机或操作系统。图 6 显示 BUM 的图形用户界面。

Linux启动时间优化技巧Linux启动时间优化技巧

图 6:BUM

编辑 rc 文件

要编辑 rc 文件,你需要转到 rc 目录。这可以使用下面的命令来做到:

cd /etc/init.d

然而,访问 init.d 需要 root 用户权限,该目录基本上包含的是开始/停止脚本,这些脚本用于在系统运行时或启动期间控制(开始、停止、重新加载、启动启动)守护进程。

在 init.d 目录中的 rc 文件被称为运行控制run control脚本。在启动期间,init 执行 rc 脚本并发挥它的作用。为改善启动速度,我们可以更改 rc 文件。使用任意的文件编辑器打开 rc 文件(当你在 init.d 目录中时)。

例如,通过输入 vim rc ,你可以更改 CONCURRENCY=none 为 CONCURRENCY=shell。后者允许某些启动脚本同时执行,而不是依序执行。

在最新版本的内核中,该值应该被更改为 CONCURRENCY=makefile。

图 7 和图 8 显示编辑 rc 文件前后的启动时间比较。可以注意到启动速度有所提高。在编辑 rc 文件前的启动时间是 50.98 秒,然而在对 rc 文件进行更改后的启动时间是 23.85 秒。

但是,上面提及的更改方法在 Ubuntu 15.10 以后的操作系统上不工作,因为使用最新内核的操作系统使用 systemd 文件,而不再是 init.d 文件。

Linux启动时间优化技巧Linux启动时间优化技巧

图 7:对 rc 文件进行更改之前的启动速度

Linux启动时间优化技巧Linux启动时间优化技巧

图 8:对 rc 文件进行更改之后的启动速度

E4rat

E4rat 代表 e4 减少访问时间reduced access time(仅在 ext4 文件系统的情况下)。它是由 Andreas Rid 和 Gundolf Kiefer 开发的一个项目。E4rat 是一个通过碎片整理来帮助快速启动的应用程序。它还会加速应用程序的启动。E4rat 使用物理文件的重新分配来消除寻道时间和旋转延迟,因而达到较高的磁盘传输速度。

E4rat 可以 .deb 软件包形式获得,你可以从它的官方网站 http://e4rat.sourceforge.net/下载。

Ubuntu 默认安装的 ureadahead 软件包与 e4rat 冲突。因此必须使用下面的命令安装这几个软件包:

sudo dpkg purge ureadahead ubuntu-minimal

现在使用下面的命令来安装 e4rat 的依赖关系:

sudo apt-get install libblkid1 e2fslibs

打开下载的 .deb 文件,并安装它。现在需要恰当地收集启动数据来使 e4rat 工作。

遵循下面所给的步骤来使 e4rat 正确地运行并提高启动速度。

  • 在启动期间访问 Grub 菜单。这可以在系统启动时通过按住 shift 按键来完成。
  • 选择通常用于启动的选项(内核版本),并按 e。
  • 查找以 linux /boot/vmlinuz 开头的行,并在该行的末尾添加下面的代码(在句子的最后一个字母后按空格键):init=/sbin/e4rat-collect or try - quiet splash vt.handsoff =7 init=/sbin/e4rat-collect 。
  • 现在,按 Ctrl+x 来继续启动。这可以让 e4rat 在启动后收集数据。在这台机器上工作,并在接下来的两分钟时间内打开并关闭应用程序。
  • 通过转到 e4rat 文件夹,并使用下面的命令来访问日志文件:cd /var/log/e4rat。
  • 如果你没有找到任何日志文件,重复上面的过程。一旦日志文件就绪,再次访问 Grub 菜单,并对你的选项按 e。
  • 在你之前已经编辑过的同一行的末尾输入 single。这可以让你访问命令行。如果出现其它菜单,选择恢复正常启动(Resume normal boot)。如果你不知为何不能进入命令提示符,按 Ctrl+Alt+F1 组合键。
  • 在你看到登录提示后,输入你的登录信息。
  • 现在输入下面的命令:sudo e4rat-realloc /var/lib/e4rat/startup.log。此过程需要一段时间,具体取决于机器的磁盘速度。
  • 现在使用下面的命令来重启你的机器:sudo shutdown -r now。
  • 现在,我们需要配置 Grub 来在每次启动时运行 e4rat。
  • 使用任意的编辑器访问 grub 文件。例如,gksu gedit /etc/default/grub。
  • 查找以 GRUB CMDLINE LINUX DEFAULT= 开头的一行,并在引号之间和任何选项之前添加下面的行:init=/sbin/e4rat-preload 18。
  • 它应该看起来像这样:GRUB CMDLINE LINUX DEFAULT = init=/sbin/e4rat- preload quiet splash。
  • 保存并关闭 Grub 菜单,并使用 sudo update-grub 更新 Grub 。
  • 重启系统,你将发现启动速度有明显变化。

图 9 和图 10 显示在安装 e4rat 前后的启动时间之间的差异。可注意到启动速度的提高。在使用 e4rat 前启动所用时间是 22.32 秒,然而在使用 e4rat 后启动所用时间是 9.065 秒。

Linux启动时间优化技巧Linux启动时间优化技巧

图 9:使用 e4rat 之前的启动速度

Linux启动时间优化技巧Linux启动时间优化技巧

图 10:使用 e4rat 之后的启动速度

一些易做的调整

使用很小的调整也可以达到良好的启动速度,下面列出其中两个。

SSD

使用固态设备而不是普通的硬盘或者其它的存储设备将肯定会改善启动速度。SSD 也有助于加快文件传输和运行应用程序方面的速度。

禁用图形用户界面

图形用户界面、桌面图形和窗口动画占用大量的资源。禁用图形用户界面是获得良好的启动速度的另一个好方法。

原文来自:https://www.linuxprobe.com/linux-boot-time.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 优化 Linux 系统的方法有很多,以下是一些常见的技巧: 1. 清理系统垃圾文件,如 /tmp 和 /var/log 目录。 2. 缩小系统的进程,关闭不必要的服务和后台进程。 3. 优化系统内存使用,可以使用内存管理工具如 'sysctl' 或 'sysfs'。 4. 安装性能监控工具,如 'top' 和 'htop',以了解系统性能瓶颈。 5. 安装系统优化工具,如 'preload' 和 'ethtool'。 6. 更新系统内核以获得最新的性能优化。 7. 更新软件包并卸载不再使用的软件包。 8. 安装轻量级的桌面环境,如 'Xfce' 或 'LXDE'。 这只是一个简单的清单,每个系统都有不同的需求和优化方法,请根据实际情况进行优化. ### 回答2: 要优化Linux系统可以从以下几个方面入手: 1.内核优化Linux系统的性能优化离不开对内核的优化。可以根据硬件配置调整内核参数,如修改文件系统缓冲区大小、网络缓冲区大小、提高进程调度优先级等。使用更适合硬件的内核版本,可以提升系统的性能和稳定性。 2.服务和进程管理:关闭不必要的系统服务和进程可以释放系统资源,并提高系统的响应速度。可以使用systemctl或service命令管理系统服务,并使用ps或top命令查看和终止不必要的进程。 3.内存管理:合理管理内存资源可以提高系统的运行效率。可以使用swap空间来提高系统的交换能力,避免物理内存不足导致系统性能下降。同时可以使用vm.swappiness参数调整内核的内存管理机制。 4.磁盘管理:优化磁盘性能可以提升系统的整体效能。可以使用文件系统的journaling和disk I/O调度算法来提高磁盘的读写性能。另外,定期清理无用的日志和临时文件,可以释放磁盘空间,并提高文件系统的性能。 5.网络优化:调整网络参数和使用更高效的协议可以提高系统的网络性能。可以通过修改TCP/IP协议栈参数,如调整TCP窗口大小、修改MTU等来增强系统对网络的响应能力。 6.安全配置:合理的安全配置是优化Linux系统的重要环节。限制不必要的开放网络端口、关闭不需要的服务、配置防火墙等措施可以提高系统的安全性和性能。 7.使用优化工具:Linux系统有许多优化工具可以帮助进行系统性能的调优,如sysstat、hdparm、iostat等。这些工具可以提供系统资源的详细信息和性能指标,并帮助找到系统优化的瓶颈。 综上所述,优化Linux系统需要综合考虑硬件配置、内核参数、服务进程管理、内存磁盘网络性能以及安全配置等因素。通过不断优化和调整可以提高系统的性能和稳定性,提升用户体验。 ### 回答3: 优化Linux系统是为了提高其性能和效率,让其更好地满足用户的需求。以下是一些方法可以优化Linux系统。 1.升级内核:使用最新的Linux内核版本可以提供更好的性能和稳定性,修复和改进已知的漏洞和问题。 2.优化启动过程:禁用不必要的启动服务和程序,可以加快系统的启动速度。可以使用开机管理器如systemd或SysVinit来控制启动过程。 3.优化文件系统:采用更高效的文件系统如ext4或Btrfs可以提高磁盘IO的效率,并使用noatime选项来减少对文件访问时间的记录。 4.优化磁盘空间:使用定期清理工具如BleachBit或Stacer来清理临时文件和不再需要的数据,释放磁盘空间。 5.优化内存管理:使用适当的内存分页和交换设置,以及减少不必要的内存使用,可以提高系统的性能。 6.限制资源使用:使用工具如cpulimit和cgroups来限制特定进程的CPU和内存使用,以避免系统资源被过度占用。 7.使用轻量级应用程序:选择适合的轻量级应用程序替代资源占用较高的程序,以提高系统的运行效率。 8.使用硬件加速:启用硬件加速可提供更快的图形处理和视频解码能力,提高系统的多媒体性能。 9.定期更新软件包:经常更新系统和应用程序的软件包以获取最新的功能和修复的bug,以确保系统的安全性和稳定性。 10.优化网络设置:调整网络参数如TCP窗口大小和队列长度,可以提高网络传输的效率和响应速度。 总之,优化Linux系统是一个综合性的过程,需要根据具体情况进行调整和优化,以提高系统的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值