本文主要是介绍练习实践-linux启动耗时分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
练习实践-启动耗时整体概览,具体服务的启动细节
参考来源:
B站up主林哥讲运维:一分钟学会:可视化查看系统启动时的性能
如何使用Linux命令查看系统的启动进程(linux查看启动进程)
解决ubuntu开机变慢;删除耗时启动项
(调查研究)通过参考来源中内容的对比,发现视频中介绍的将启动过程导出为svg图片的方式,还需要在浏览器打开,然后分析,没有
直接通过命令systemd-analyze blame #查看开机启动项耗时 来得清爽。
简介:
通过systemd-analyze工具,统计ubuntu1804启动耗时,发现超过2分钟,然后通过分析具体的服务耗时,了解服务的具体作用,综合考虑影响范围和消耗时间,将部分服务功能禁用,以提高启动时间的试验记录。
systemd-analyze工具
工具介绍(来自讯飞星火大模型ai)
systemd-analyze 是 systemd 系统和服务管理器提供的一个命令,用于分析启动时间。以下是 systemd-analyze 的一些常用选项:systemd-analyze: 显示系统启动的耗时信息。
systemd-analyze blame: 显示启动时各个服务启动所花费的时间,并按耗时排序。
systemd-analyze critical-chain: 显示启动时关键路径上的各个服务及其耗时。
systemd-analyze plot > boot.svg: 将启动耗时信息输出为SVG格式的图片文件。
systemd-analyze time: 显示从系统启动到当前所经过的时间。
使用这些选项可以帮助你分析系统的启动性能,找出可能影响启动速度的服务,并进行优化
- 直接输入,显示启动整体耗时,
root@ub1804:/home/xiaoyue# systemd-analyze
Startup finished in 7.764s (kernel) + 2min 12.368s (userspace) = 2min 20.132s
graphical.target reached after 1min 57.819s in userspace
2.将启动过程打印输出svg图片
systemd-analyze plot >boot.svg
先搞清楚这个耗时的服务是做啥用的(问了讯飞星火大模型ai)
atp-daily.service 服务介绍
atp-daily.service 服务介绍:
服务功能:atp-daily.service 服务主要负责执行与Application Troubleshooting Platform(ATP)相关的日常任务。这些任务可能包括数据收集、分析报表的生成和更新等。服务影响:此服务对系统的日常运行影响不大,但如果用户需要立即使用系统而不希望等待服务完成,可以考虑延后执行或禁用该服务。服务配置:通过编辑服务的计时器,如apt-daily.timer,可以调整服务启动的时间。例如,设置OnBootSec选项可以使服务在开机后一段时间再启动。优化策略:如果确定不需要此服务,可以通过系统ctl命令禁用和关闭服务来避免不必要的资源消耗。维护建议:定期检查服务的运行状态和日志,确保服务不会因错误而影响系统性能。可以使用systemctl status apt-daily.service命令查看服务状态。
将显示启动消耗1分多钟的服务给停止后禁止启动
root@ub1804:/home/xiaoyue# sudo systemctl stop apt-daily.service
Warning: Stopping apt-daily.service, but it can still be activated by:apt-daily.timer
root@ub1804:/home/xiaoyue# sudo systemctl stop apt-daily.timer
root@ub1804:/home/xiaoyue# systemctl disable apt-daily.service
root@ub1804:/home/xiaoyue# systemctl disable apt-daily.timer
Removed /etc/systemd/system/timers.target.wants/apt-daily.timer.
然后重启设备,重新执行命令,进行效果确认
root@ub1804:/home/xiaoyue# systemd-analyze
Startup finished in 2.467s (kernel) + 1min 30.191s (userspace) = 1min 32.658s
graphical.target reached after 23.588s in userspace
看到启动时间从2分20秒降到1分32秒,降低了48秒,内核启动时间由7.764s秒降到了2.467s;
重新导出启动过程,查看是否还存在已经被禁用的服务;
———————分隔符—————————————
继续尝试优化启动时间
snap服务耗时
root@ub1804:/home/xiaoyue# systemd-analyze blame21.348s plymouth-quit-wait.service2.675s snapd.service
snap服务的功能
(来自讯飞星火大模型ai的回复)
plymouth-quit-wait.service是**一个在系统启动过程中负责显示启动徽标的服务,直到启动过程完成,隐藏启动初始屏幕再显示图形登录界面**。下面将深入探讨plymouth-quit-wait.service服务的各个方面:1. **服务功能和作用**- **启动徽标加载**:plymouth-quit-wait.service服务的主要功能是在系统启动时加载并显示启动徽标[^1^]。这一功能不仅增强了用户体验,通过提供视觉反馈,还能让用户在启动过程中感受到系统的响应。- **图形登录界面显示**:此服务还负责在启动过程完成后隐藏启动初始屏幕,然后显示图形登录界面[^1^]。这保证了用户能够顺利进入操作系统,进行后续的操作和使用。
2. **服务依赖和影响**- **依赖关系**:虽然plymouth-quit-wait.service服务看似简单,但实际上它与系统中几乎所有的服务都有联系。这种广泛的依赖性要求该服务必须平稳运行,以维护整个系统的启动流程[^1^]。- **对启动时间的影响**:尽管该服务几乎与所有其他服务相关联,但实际对系统的启动时间并没有显著影响。这意味着它可以在不影响系统性能的前提下,提高系统的视觉吸引力和用户满意度[^1^]。
3. **管理和优化**- **关闭和开启服务**:为了验证plymouth-quit-wait.service服务对启动时间的影响,可以临时关闭该服务,使用命令`systemdctl mask plymouth-quit-wait.service`,然后观察开机时间的变化[^1^]。之后,再次启用该服务以恢复其功能。- **检查依赖服务**:理解服务之间的依赖关系对于系统管理员来说至关重要。使用`systemctl list-dependencies --reverse plymouth-quit-wait.service`命令可以帮助了解哪些服务依赖于plymouth-quit-wait.service,从而更好地管理系统的启动流程[^1^]。
4. **与其他服务的互动**- **与网络服务的关联**:在某些情况下,plymouth-quit-wait.service可能会与网络服务产生互动,尤其是在系统尝试在启动时建立网络连接的情况下[^2^]。这可能会影响到服务的执行和系统的整体启动时间。- **替代方案的考虑**:如果发现plymouth-quit-wait.service在某些环境中不必要或存在问题,可以考虑使用其他的启动动画服务或禁用图形启动画面,以简化启动过程并可能改善启动速度[^2^]。总的来说,plymouth-quit-wait.service服务虽然在系统启动中扮演着重要的角色,但其对启动时间的实际影响较小。通过合理管理此服务及其依赖项,可以在保持系统美观的同时,也确保了系统启动的高效性。
卸载snap服务,注意用snap安装的软件也会被删除,snap list看查看安装的软件列表,下载之后可以看到磁盘空间里没了那些**/dev/loop*项**,开机也没了snapd.service和dev-loop*.device项,节约了大量开机时间```bash
root@ub1804:/home/xiaoyue# sudo apt purge snapd
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:gir1.2-goa-1.0 gir1.2-snapd-1 linux-hwe-5.4-headers-5.4.0-84
使用'sudo apt autoremove'来卸载它(它们)。
下列软件包将被【卸载】:gnome-software-plugin-snap* snapd*
升级了 0 个软件包,新安装了 0 个软件包,要卸载 2 个软件包,有 3 个软件包未被升级。
解压缩后将会空出 171 MB 的空间。
您希望继续执行吗? [Y/n] y
-----------分隔符-------------------
关闭plymouth-quit-wait.service
服务功能:
启动徽标加载:plymouth-quit-wait.service服务负责在系统启动过程中显示启动徽标,直到所有启动过程完成,然后隐藏启动初始屏幕,并显示图形登录界面。这一服务不仅增强了用户体验,还通过提供视觉反馈,让用户在启动过程中感受到系统的响应。
图形登录界面显示:此服务确保在系统完全准备好之后才显示图形登录界面,从而避免用户在系统尚未完全就绪时尝试登录,这可能会引起登录延迟或系统不稳定的问题
查看systemd-analyze blame 启动时间有无改善,好像没啥改善,给恢复了
关闭plymouth-quit-wait.service
root@ub1804:/home/xiaoyue# sudo systemctl disable NetworkManager-dispatcher.service
Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
root@ub1804:/home/xiaoyue#
root@ub1804:/home/xiaoyue# sudo systemctl disable NetworkManager-wait-online.serviceRemoved /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
彩蛋:mask
看到systemctl的man手册, mask 选项的解释中有一句英语「This is a stronger version of disable, since it prohibits all kinds of activation of the unit, including enablement and manual activation.」
翻译过来就是:「这是一个增强版本的 disable,因为它阻止了所有激活这个单元的行为,包括启用和手动激活」。
mask 是英语「掩盖,遮蔽」的意思。
如果之前使用过mask命令,需要先取消屏蔽状态,可以使用systemctl unmask plymouth-quit-wait.service命令解除之前的屏蔽设置
按文章建议,关闭了两个网络相关的服务
root@ub1804:/home/xiaoyue# sudo systemctl stop plymouth-quit-wait.service
root@ub1804:/home/xiaoyue# systemctl mask plymouth-quit-wait.service
Created symlink /etc/systemd/system/plymouth-quit-wait.service → /dev/null.
但是启动时间目前还是稳定在了1分32秒,但是可以看到诊断输出信息的最后一行,进入图形化界面的时间,在取消atp-daily.service之后就由57.819s降低到了23s.
root@ub1804:/home/xiaoyue# systemd-analyze time
Startup finished in 2.534s (kernel) + 1min 30.233s (userspace) = 1min 32.768s
graphical.target reached after 21.484s in userspace
这篇关于练习实践-linux启动耗时分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!